2013-05-08 34 views
0

爲什麼這行有語法錯誤(如下所示)?由於令牌上的語法錯誤「;」 ...爲什麼?

import java.util.StringTokenizer; 

public class Tokenizer 
{   
    public Tokenizer() 
    { 
    }   

    int n; 
    String esempio = "Ciao dodo sos"; 
    StringTokenizer Tok = new StringTokenizer(esempio); // <---- Syntax error on token ";" 

    while (Tok.hasMoreElements()) 
     System.out.println("" + ++n +": "+Tok.nextElement()); 
} 
+0

該代碼是否正確?有問題的代碼不在函數定義中。 – andrunix 2013-05-08 19:06:46

+0

'System.out.println(「」+ ++ n +「:」+ Tok.nextElement());'請不要寫那樣的東西..這是完全不可讀的。之前增加'n'並給予'n'一個更好的名字。 – 2013-05-08 19:07:20

+0

另外,如果您實際上使用Netbeans或Eclipse,它會在嘗試編譯之前顯示此錯誤。 – 2013-05-08 19:09:28

回答

6

你需要寫裏面的方法,或一些應用代碼塊語句

9

編譯器試圖將StringTokenizer聲明與while循環,使期待開括號{(匿名實現塊關聯)而不是分號;

您需要使用的方法,而不是在類的代碼塊:

int n = 0; 
String esempio = "Ciao dodo sos"; 
StringTokenizer Tok = new StringTokenizer(esempio); 

void doSomething() { 

    while (Tok.hasMoreElements()) { 
     System.out.println("" + ++n +": "+Tok.nextElement()); 
    } 
} 

一個while語句是一個非陳述語句,因此它必須出現在方法,靜態初始化或構造。

3

Reimeus說了些什麼,再加上一些關於爲什麼你在這條線上出現錯誤的解釋。用這兩行代碼:

int n; 
String esempio = "Ciao dodo sos"; 

您可能剛剛聲明瞭類成員數據。當你真的試圖對數據做些什麼的時候,它就變成了錯誤,並且需要屬於一個方法。 HTH

相關問題