У меня две проблемы.
- Итак, файл .txt выглядит так:
1, 2, 2.0, car, 3, 4,20, house, 7, 8.2, 19, movie, 3,1, 45
Мне нужно разделить ихчисла и слова и помещают их в отдельные списки, но это работает только тогда, когда я использую метод .split(", ");
, и это не помещает числа, у которых нет запятых в запятых, в мой список номеров.Мой код:
File file = new File(pathToFile);
br = new BufferedReader(new FileReader(file));
String str;
while ((str = br.readLine()) != null) {
data = str.split(", ");
}
for (String entry : data) {
try {
int number = Integer.valueOf(entry);
numbersList.add(number);
} catch (NumberFormatException e) {
wordsList.add(entry);
}
}
System.out.println(numbersList);
System.out.println(wordsList);
Я где-то читал, что метод .split();
автоматически игнорирует пустые пробелы, но, похоже, это не так, потому что я получаю такой вывод:
numbersList - 1, 2, 3, 7, 19, 45
wordsList - 2.0, car, 4,20, house, 8.2, movie, 3,1
Мне нужна помощь в отделении поплавков от слов.До сих пор я пробовал это:
try {
int number = Integer.valueOf(entry);
float decimalNumber = Float.parseFloat(entry);
numbersList.add(number);
decimalNumbersList.add(decimalNumber);
} catch (NumberFormatException e) {
wordsList.add(entry);
}
Но это не сработало.Совсем.Он просто преобразовал нормальные числа в числа с плавающей точкой.
decimalNumbersList - 1.0, 2.0, 24.0, 18.0, 1.0, 3.0, 20.0, 12.0, 8.0, 12.0