#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].обрезка()