2016-04-17 7 views
-1

я сделал калькулятор и теперь улучшая его так, что он читает одну строку кода и превращает его в трех переменных : с первым номером,B: второй номер,и функции: что он делает пример: 10 * 10. Это мой код:Почему StringTokenizer не понимает функцию nextToken?

System.out.println("problem: "); 
problem = user_input.next(); 
StringTokenizer token = new StringTokenizer(problem," "); 
a = Integer.parseInt(token.nextToken()); 
String Menu = (token.nextToken()); 
b = Integer.parseInt(token.nextToken()); 

Он не понимает nextToken вообще, это говорит в Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(Unknown Source) at mycalc.main(mycalc.java:20), и я спросил друга, что на самом деле показал мне, как это работает, и он был смущен тоже. Пожалуйста, помогите мне любым возможным способом!

+0

'Неизвестный источник' означает, что отладочная информация отсутствует. –

+0

Также http://stackoverflow.com/q/23220224/1743880 и http://stackoverflow.com/q/20104942/1743880 и http://stackoverflow.com/a/10147003/1743880 и http: // stackoverflow. ком/кв/20189486/1743880. Ha и http: //stackoverflow.com/q/23968923/1743880 ... – Tunaki

ответ

0

Когда вы

problem = user_input.next(); 

это читать только одно слово. например если вы вводите 10 * 10, то это слово будет 10

Так что, когда вы делаете

String Menu = (token.nextToken()); 

нет такого элемента, как говорит об ошибке.

Примечание: вы разбираете слова двумя разными способами. Было бы проще просто использовать сканер.

System.out.println("problem: "); 
a = user_input.nextInt(); 
String menu = user_input.next(); 
b = user_input.nextInt(); 
+0

Разве StringTokenizer не должен разделять его на несколько групп между пробелами? – TheLittleCoder

+0

@ TheLittleCoder он делает. однако в вашем потоке ввода есть только одно слово: 'next()' возвращает только одно слово. –

+1

Не рекомендуется отвечать на повторяющиеся вопросы в соответствии с FAQ http://meta.stackexchange.com/q/10841. Нужно голосовать вместо этого. – Tunaki