public class SumLineTester {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SumLine test = new SumLine("5 8 3 2 1");
System.out.println(test.getSum());
}
}
import java.util.Scanner;
public class SumLine {
private String line;
public SumLine(String s) {
line = s;
}
public int getSum(){
int sum = 0;
Scanner chop = new Scanner(line);
while(chop.hasNextInt()){
sum= sum + chop.nextInt();
}
return sum;
public String getLine(){
return s;
}
public String toString(){
return line;
}
}
}
import上方的代码的第一部分是包含我的main方法的测试器类。其余的是我试图从测试器运行的代码,但我不断收到此错误:
Syntax error, insert "EnumBody" to complete BlockStatement
at SumLine.getSum(SumLine.java:17)
at SumLineTester.main(SumLineTester.java:10)
如何解决该错误?
您缺少getSum()
末尾的大括号
public int getSum(){
int sum = 0;
Scanner chop = new Scanner(line);
while(chop.hasNextInt()){
sum= sum + chop.nextInt();
}
return sum;
^ \\no close brace
public String getLine(){
return s;
}
这将引发异常,因为您试图在getSum()
方法中声明一个不允许的新方法。
只需像这样添加右括号:
public int getSum(){
int sum = 0;
Scanner chop = new Scanner(line);
while(chop.hasNextInt()){
sum= sum + chop.nextInt();
}
return sum;
}
^ \\close brace added
public String getLine(){
return s;
}
而且,正如大卫·华莱士(David Wallace)在评论中指出的那样,别忘了在课堂结束时删除多余的花括号。
附带说明,如果使用像Eclipse这样的IDE,这些错误将更容易发现。
完全不确定人们为什么认为对问题进行投票表决是适当的,出于某种原因,认为该问题在他们之内或如此。这是一个完全有效的问题。即使是最有经验的程序员也会犯语法错误。碰巧我是一个类似错误的领导者;终止注释行,导致出现相同的消息。
语法错误,插入“ EnumBody”以完成BlockStatement似乎是默认错误消息,它是由于语法错误而引起的,它使编译器严重混淆,以致于无法分辨您在尝试什么去做。一旦理解了这一点,就很容易发现我以;结尾。我应该没有的,如果/当我再次看到此消息时,我将知道这意味着我犯了一个菜鸟语法错误,并且没有要查找的错误类别。这样的解释将对这个用户有所帮助,如果这样的答案在用户的下面,请绕开该问题。否决票是针对错误的问题和答案,而不是针对您永远无法犯的错误的问题。
我如何启动InternetExplorer浏览器。它会部分启动浏览器,但随后会停止,并显示以下消息:这是WebDriver服务器的初始起始页。
有人可以帮忙。
先谢谢您。