Пытаетесь разделить файл txt на два списка массивов?

#java #sorting #arraylist

Вопрос:

Это изображение представляет собой текстовый файл, который мне нужно разделить по дате и цифрам рядом с ним

 BufferedReader wordReader = new BufferedReader(new FileReader("\Users\rosha\eclipse-workspace\working\src\workingfix\spx_data_five_years.txt"));
        ArrayList<String> spxIndex = new ArrayList<>();
        ArrayList<String> date = new ArrayList<>();
        //populating the Array with the file
        String line = wordReader.readLine();
        
        while (line != null) {
            date.add(line);
            line = wordReader.readLine();
        }
        wordReader.close();
 

Мне бы очень хотелось понять, как разделить этот файл на два массива. Я занимался этим некоторое время, и некоторые указания в правильном направлении были бы невероятными. Приношу извинения, если это простое решение, по какой-то причине у меня возникли проблемы с началом работы.

Вот часть текстового файла, если я смогу получить рекомендации по этому вопросу, я буду в хорошей форме

1/4/2010 1132.99

1/5/2010 1136.52

1/6/2010 1137.14

1/7/2010 1141.69

1/8/2010 1144.98

1/11/2010 1146.98

1/12/2010 1136.22

1/13/2010 1145.68

Комментарии:

1. пожалуйста, предоставьте образец ввода в виде текста, а не изображения. Подсказка: используйте регулярное выражение или StringTokenizer или просто String.split()

Ответ №1:

Ваши два примера немного отличаются, на изображении кажется, что записи разделены вкладкой. В вашем примере текста записи разделены пробелом. Если они разделены пробелом, String[] splitter = line.split(" "); достаточно простого. Это дает вам результат в виде массива, который вы можете записать в списки массивов.

Ответ №2:

Вот решение, использующее метод разделения

     public static void main(String[] args) throws IOException {
    ArrayList<String> spxIndex = new ArrayList<>();
    ArrayList<String> date = new ArrayList<>();
    String sCurrentLine;

    BufferedReader br = new BufferedReader(new FileReader("\Users\rosha\eclipse-workspace\working\src\workingfix\spx_data_five_years.txt"));
    while ((sCurrentLine = br.readLine()) != null) {
        String[] lineValues = sCurrentLine.split(" "); 
        date.add(lineValues[0]); 
        spxIndex.add(lineValues[1]); 
    }
    br.close();
    System.out.println(date);
    System.out.println(spxIndex);
}
 

Комментарии:

1. Я продолжаю получать ошибку «Индекс 1 выходит за пределы длины 1». В любом случае, чтобы исправить это?

2. Брошено, чтобы указать, что к массиву был получен доступ с незаконным индексом. Индекс либо отрицательный, либо больше или равен размеру массива. docs.oracle.com/javase/6/docs/api/java/lang/…

3.1/4/2010 1132.99 1/5/2010 1136.52 1/6/2010 1137.14 1/7/2010 1141.69 1/8/2010 1144.98

4. В текстовом файле между датой и цифровыми цифрами есть 4 пробела

5. используйте обрезку для удаления пробелов пример значений строк[0].обрезка() Значений строк[1].обрезка()