我正在自学Java,我遇到了一个我想解决的问题。以下是问题所在:
用方法
Calculator编写一个名为int sum(String s)的类。字符串s包含一组由空格(空格、制表符或换行符)分隔的整数。返回整数的和。 您可以使用Scanner对象来解决这个问题。创建一个new Scanner(s)并将其存储在一个变量中,比如in。然后,使用in.hasNextInt()控制while循环。while循环的每次迭代都使用in.nextInt()从字符串s中获取下一个整数。将此整数累加到变量中,并在循环退出时返回该变量。 您可以使用一个主方法来测试您的方法,方法是创建一个Calculator类的实例,并使用该实例使用几个值组合调用sum(…)。
到目前为止我的代码是
import java.util.Scanner;
public class calculator{
public int sum(String s){
new Scanner(s);
String in = s;
while (s.hasNextInt()) {
s = in.nextInt();
}
return(0);
}
}我还没有完成这门课程,但我说错了。
找不到符号:方法hasNextInt()
为什么?从这一点开始,我不太清楚该怎么办,那我该怎么办呢?s是否被正确地存储到in中?
发布于 2013-09-10 13:17:27
你的变量声明,
new Scanner(s);
String in = s;是完全错误的。你必须把扫描仪存储在一个变量中。这意味着:
Scanner myScanner = new Scanner(s);然后
while (myScanner.hasNextInt())发布于 2013-09-10 13:17:10
如果不将new Scanner(s)存储在某个地方,仅仅创建一个就不会有多大作用。赋值似乎要求您将其存储在一个名为s的变量中(而不是in )。
Scanner in = new Scanner(s);在此之后,您就不必再直接处理s了:Scanner可以为您完成工作。
在您的代码中,s是一个String,所以它没有像hasNextInt()和nextInt()这样的方法。您应该在in上调用它们,这应该是一个Scanner (这是错误的直接原因)。
发布于 2013-09-10 13:18:25
您正在调用String上的方法。
您需要在hasNextInt()上调用Scanner方法
Scanner sc = new Scanner(s);
while (sc.hasNextInt()) {
int i = sc.nextInt();
}https://stackoverflow.com/questions/18719959
复制相似问题