A Сканер может быть более простым способом анализа ввода. Сканер принимает множество различных последовательностей (String, File, PrintStream (например, System.in) и другие типы, которые я считаю) и поможет вам легко разобрать предоставленную последовательность.
В вашем случае сканер позволит вам легко получить числовые значения, используя метод nextInt () :
String fileName = "sample.txt";
Scanner scanner = new Scanner(new File(fileName));
while (scanner.hasNext()) {
if (scanner.hasNextInt())
System.out.println(scanner.nextInt());
else
System.out.println(scanner.next());
}
Вы можете использовать это, а затем построить данные, которые являются просто строками, и отделить их от значений, которые являются действительными числами. Это может быть немного проще в долгосрочной перспективе.
Моя причина опубликовать это состоит в том, чтобы указать, что могут быть другие способы анализа данных. Возможно, это не совсем то, что вам нужно прямо сейчас, но это может пригодиться в будущем. Это может быть приемлемым вариантом, если / если вы пересмотрите рефакторинг этого кода. Желаем удачи!