2016-04-17 11 views
-1

私は電卓を作り、今では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。 com/q/20189486/1743880 Haとhttp://stackoverflow.com/q/23968923/1743880 ... – Tunaki

答えて

0

あなたは

problem = user_input.next(); 

を行うと、これはただ一つの単語をお読みください。例えば入力10 * 10あなたに、この言葉が10

になります場合は、

String Menu = (token.nextToken()); 

を行うときにエラーが示唆するように、そのような要素がありません。

注:2つの異なる方法で単語を解析しています。スキャナを使用する方が簡単です。

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

StringTokenizerはスペース間で複数のグループに分割する予定ですか? – TheLittleCoder

+0

@TheLittleCoderです。しかし、あなたの入力ストリームは 'next()'のように1つの単語だけを返します。 –

+1

FAQ http://meta.stackexchange.com/q/10841に従って重複した質問に答えることはお勧めしません。代わりに投票に投票してください。 – Tunaki

関連する問題