令牌“;”上的语法错误......为什么?

时间:2013-05-08 19:04:26

标签: java syntax

为什么这一行会出现语法错误(如下所示)?感谢

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());
}

3 个答案:

答案 0 :(得分:9)

编译器正在尝试将StringTokenizer声明与while循环相关联,因此期望开括号{(对于匿名实现块)而不是分号{{1 }}。

您需要使用方法而不是在类块中使用代码:

;

int n = 0; String esempio = "Ciao dodo sos"; StringTokenizer Tok = new StringTokenizer(esempio); void doSomething() { while (Tok.hasMoreElements()) { System.out.println("" + ++n +": "+Tok.nextElement()); } } 语句是非声明性语句,因此它必须出现在方法,静态初始化器或构造函数中。

答案 1 :(得分:6)

您需要在方法或一些适用的代码块中编写语句

答案 2 :(得分:3)

Reimeus说了什么,还有一些关于你为什么在这条线上得到错误的解释。有了这两行:

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

你可能刚刚声明了类成员数据。当你真的试图对数据做某事时,它变成了错误并且需要属于一个方法。 HTH