2012-10-16 35 views
0
package data_structures; 

import java.util.StringTokenizer; 

public class ExpressionEvaluator implements Stack, Queue { 
    private String userInput; 
    public ExpressionEvaluator() { 
     Userinput = null; 
    } 

    Iterator<E> st = new StringTokenizer(); 
    token = st.next(); 
    while (st.hasMoreTokens()) { 

問題已經發生在這一點上,所以我沒有繼續碼這有什麼問題會返回以下錯誤?

的錯誤:

data_structures/ExpressionEvaluator.java:10: illegal start of typejava 
while (st.hasMoreTokens()) { 
^ 
data_structures/ExpressionEvaluator.java:10: <identifier> expected 
while (st.hasMoreTokens()) { 
^ 
data_structures/ExpressionEvaluator.java:10: ';' expected 
while (st.hasMoreTokens()) { 
^ 
data_structures/ExpressionEvaluator.java:10: illegal start of type 
while (st.hasMoreTokens()) { 
^ 
data_structures/ExpressionEvaluator.java:10: <identifier> expected 
while (st.hasMoreTokens()) { 
^ 
data_structures/ExpressionEvaluator.java:10: ';' expected 
while (st.hasMoreTokens()) { 
+0

'Userinput'!='userInput'。 –

+1

[不要在代碼片段中留下不匹配的括號和括號!](http://xkcd.com/859/) –

回答

2

下面的代碼應該是一個方法內。不是直接在課堂內。

Iterator<E> st = new StringTokenizer(); 
    token = st.next(); 
    while (st.hasMoreTokens()) { 
+0

非常感謝。你現在是我的英雄。修正了這個問題。 –

+1

@RyanMatonis:如果回答有幫助,您不要忘記通過點擊答案旁邊的勾號來接受它。 – kosa

+0

'public boolean isOperator(String t){ \t return(t.equals(「+」)|| t.equals(「 - 」)|| t.equals(「^」)|| t.equals(「 「)|| t.equals(」*「)); }' 我有這樣一類具有此錯誤編譯內: data_structures/ExpressionEvaluator.java:40: 類型的非法開始的for(int i = 0,I <10,I ++){ –

1

本節

Iterator<E> st = new StringTokenizer(); 
token = st.next(); 
while (st.hasMoreTokens()) { 

是不是有一種方法或靜態initaliser。所有代碼都必須在方法中出現的一類

0

更新您的構造函數如下里面,因爲變量的命名是不正確的:

public ExpressionEvaluator() { 
     userInput = null; 
    } 

移動下面的代碼(修訂版)的構造函數代碼在一些方法,因爲它不能獨立存在例如

public void evaluate(){ 
    StringTokenizer st = new StringTokenizer(userInput); 
    while (st.hasMoreTokens()) { 
     String token = st.nextToken(); 
     //manage your processing logic here 
    } 
} 
相關問題