Я новичок в разборе (и новичке в Java), поэтому я просто хочу быть уверен, что я правильно это понимаю.
Я написал программу, которая позволяет пользователю вставлять текст в текстовое поле, а затем нажимать кнопку «анализ данных». Эта кнопка анализирует текст для двух частей данных: имени и числа.
Текстовые данные обычно вставляются пользователем в эту форму:
john 48915
beth 10431
frank 10112
anne 34887
taserface 90090
bill 56448
Я использую регулярное выражение "^ \ d + \ t. * \ D + $", чтобы обнаружить шаблон, и после подтверждения шаблона мой код данных анализа выполняет следующее:
Scanner parser = new Scanner(inputText);
parser.useDelimiter("\\n");
while (parser.hasNext()) {
String nextToken = parser.next();
String name = nextToken.trim();
// how do I get the number?
Вы заметите разделитель \ n, который анализирует данные по символу новой строки. Это разбивает данные на строки, но не разбивает каждую строку на две отдельные точки данных. Мне нужно взять имя и номер отдельно.
Полагаю, мне следует использовать разделитель пробелов, но я не уверен, стоит ли делать это одним или двумя различными шагами. Я полагаю, что путаница проистекает из моего ограниченного понимания того, как работает сканер. Но после просмотра документации по Java я все еще не совсем уверен.
Токовый выход:
john 48915
beth 10431
frank 10112
и т.д.
Ожидаемый результат:
john
48915
beth
10431
и т.д.
Должен ли я выполнять два разных цикла анализа или я могу выполнить работу за один проход?