Я пытаюсь взять входной файл .txt, который содержит символы и целые числа, и читаю только целые числа, чтобы я мог выполнять вычисления.Этот код работает, когда мой входной файл .txt содержит только целые числа, разделенные пробелами и запятыми, но не работает, когда я добавляю символы.
Файл образца:
Student A: 90, 85, 70, 95
Student B: 65, 75, 90, 90
Student C: 80, 80, 75, 85
Student D: 100, 75, 80, 75
public class test {
public static void ReadScore (String[] args) {
List<Integer> listIntegers = new ArrayList<>();
File f = new File("input2.txt"); {
try (Scanner sc = new Scanner(f)) {
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] tokens = line.split("\\s*,\\s*");
for (String token : tokens) {
listIntegers.add(Integer.parseInt(token));
}
}
} catch (Exception e) {
e.printStackTrace();
}
finally {System.out.println(listIntegers); }
}}
public static void main (String[] args) {
test.ReadScore(args);
}
}
Когда образец.TXT-файл содержит только целые числа, я получил бы такой результат:
[90, 85, 70, 95, 65, 75, 90, 90, 80, 80, 75, 85, 100, 75, 80, 75]
Однако, когда вводится «Student A:» и т. д., я не уверен, как с этим справиться, и я получаю IOExceception, как:
java.lang.NumberFormatException: For input string: "Jeff: 10"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at test.ReadScore(test.java:17)
at test.main(test.java:27)
[]