Я хотел бы иметь возможность анализировать строки, подобные следующим: «123456abcd9876az45678». БНФ выглядит так:
number: ? definition of an int ?
word: letter { , letter }
expression: number { , word , number }
Однако класс java.util.scanner не позволяет мне делать следующее:
Scanner s = new Scanner("-123456abcd9876az45678");
System.out.println(s.nextInt());
while (s.hasNext("[a-z]+")) {
System.out.println(s.next("[a-z]+"));
System.out.println(s.nextInt());
}
В идеале это должно дать:
-123456
abcd
987
az
45678
Я очень надеялся, что java.util.Scanner мне поможет, но, похоже, мне придется создать свой собственный сканер. Есть ли что-нибудь, что уже есть в Java API, что может мне помочь?
Вопрос пропустить слишком много информации. И поэтому все ответы справедливы для вопроса, но не для моей проблемы.