首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到java.util.Scanner的符号java.util.Scanner

找不到java.util.Scanner的符号java.util.Scanner
EN

Stack Overflow用户
提问于 2013-09-10 13:14:36
回答 10查看 9K关注 0票数 4

我正在自学Java,我遇到了一个我想解决的问题。以下是问题所在:

用方法Calculator编写一个名为int sum(String s)的类。字符串s包含一组由空格(空格、制表符或换行符)分隔的整数。返回整数的和。 您可以使用Scanner对象来解决这个问题。创建一个new Scanner(s)并将其存储在一个变量中,比如in。然后,使用in.hasNextInt()控制while循环。while循环的每次迭代都使用in.nextInt()从字符串s中获取下一个整数。将此整数累加到变量中,并在循环退出时返回该变量。 您可以使用一个主方法来测试您的方法,方法是创建一个Calculator类的实例,并使用该实例使用几个值组合调用sum(…)

到目前为止我的代码是

代码语言:javascript
复制
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中?

EN

回答 10

Stack Overflow用户

发布于 2013-09-10 13:17:27

你的变量声明,

代码语言:javascript
复制
new Scanner(s);
String in = s;

是完全错误的。你必须把扫描仪存储在一个变量中。这意味着:

代码语言:javascript
复制
Scanner myScanner = new Scanner(s);

然后

代码语言:javascript
复制
while (myScanner.hasNextInt())
票数 58
EN

Stack Overflow用户

发布于 2013-09-10 13:17:10

如果不将new Scanner(s)存储在某个地方,仅仅创建一个就不会有多大作用。赋值似乎要求您将其存储在一个名为s的变量中(而不是in )。

代码语言:javascript
复制
Scanner in = new Scanner(s);

在此之后,您就不必再直接处理s了:Scanner可以为您完成工作。

在您的代码中,s是一个String,所以它没有像hasNextInt()nextInt()这样的方法。您应该在in上调用它们,这应该是一个Scanner (这是错误的直接原因)。

票数 17
EN

Stack Overflow用户

发布于 2013-09-10 13:18:25

您正在调用String上的方法。

您需要在hasNextInt()上调用Scanner方法

代码语言:javascript
复制
Scanner sc = new Scanner(s);
while (sc.hasNextInt()) {
   int i = sc.nextInt();
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18719959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档