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

3 回答 3

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语句是非声明性语句,因此它必须出现在方法、静态初始化程序或构造函数中。

于 2013-05-08T19:06:35.273 回答
6

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

于 2013-05-08T19:06:29.450 回答
3

Reimeus 所说的内容,以及有关您在该行出现错误的原因的更多解释。用这两行:

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

您可能只是在声明类成员数据。当你真正尝试对数据做某事时,它变成了错误并且需要属于一个方法。高温高压

于 2013-05-08T19:09:57.577 回答