Посмотрите на демонстрационный код для StreamTokenizer here. Кажется, что это не работает должным образом, когда в строке /
(просто добавьте /
между строкой в StringReader
). Вот код из упомянутой ссылки,Поведение StreamTokenizer для оператора деления "/"
StreamTokenizer tokenizer = new StreamTokenizer(
new StringReader("Mary had 1 little lamb..."));
while(tokenizer.nextToken() != StreamTokenizer.TT_EOF){
if(tokenizer.ttype == StreamTokenizer.TT_WORD) {
System.out.println(tokenizer.sval);
} else if(tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
System.out.println(tokenizer.nval);
} else if(tokenizer.ttype == StreamTokenizer.TT_EOL) {
System.out.println();
}
}
Например, для строки "Mary had 1 little lamb..."
, выход
Mary
had
1.0
little
lamb...
Для строки, "Mary had 1 /little lamb..."
, выход
Mary
had
1.0
- ли
/
работы как токен EOF? Если да, то почему? - Есть ли способ отличить
/
как другой токен, отличный от EOF.
Кажется ОК для меня. Можете ли вы поделиться фрагментом кода, результатом, который вы получаете, и ожидаемым результатом? – Mureinik
Что именно не работает? Примечание: ['StreamTokenizer'] (https://docs.oracle.com/javase/8/docs/api/java/io/StreamTokenizer.html) устарел. – Maroun
Я отредактировал вопрос. Теперь вы можете найти более подробную информацию. – user148865