Это код, который я реализовал, но я получаю несколько массивов данных в инкрементном порядке, но мне нужны отдельные массивы данных. Как мне подойти к этому? Также нормально ли пытаться поймать внутри блока catch?Как отделить типы данных от текстового файла?
Text File:
The 1493 fox 0.4 -6.382 jumped -832722 0 1 9E-21 162 over the dog!
Например: Двойные значения печатаются каждый раз, когда к ним добавляются данные.
@SuppressWarnings("resource")
Scanner s= new Scanner(new File("src/inputs.txt")).useDelimiter("\\s+");
ArrayList<Long> itr= new ArrayList<Long>();
ArrayList<Double> dub = new ArrayList<Double>();
ArrayList<String> str = new ArrayList<String>();
while(s.hasNext())
{
String str1=s.next();
try
{
long b=Long.parseLong(str1);
itr.add(b);
System.out.println("Integer values are ::"+itr);
}
catch(NumberFormatException e)
{
try
{
double b1=Double.parseDouble(str1);
dub.add(b1);
System.out.println("Double values are ::"+dub);
}
catch(NumberFormatException e1)
{
String b2 = (String) str1;
str.add(b2);
System.out.println("String Values are"+str);
}
}
}
}}
Ожидаемый результат:
Integer values are ::[1493, -832722, 0, 1]
Double values are ::[0.4, -6.382, 9.0E-21]
String Values are[The, fox, jumped, over, the, dog!]
@Bohemian Обновлено ..... – Box
Распечатайте Arraylist вне цикла while. – pikrut
Я согласен с @pikrut. Переместите три println за пределы while, в конце алгоритма. Кроме того, почему вы используете Long вместо Integer для первого типа? – RubioRic