【问题标题】:How do I fix my error with scanner? java.util.InputMismatchException如何修复我的扫描仪错误? java.util.InputMismatchException
【发布时间】:2020-06-06 23:03:43
【问题描述】:

我正在使用 Java(VSC 是我的编译器)。 我尝试通读同一文件夹中的文档。但是,仅扫描会导致此错误:

An error has occured.
java.util.InputMismatchException
        at java.base/java.util.Scanner.throwFor(Scanner.java:939)
        at java.base/java.util.Scanner.next(Scanner.java:1594)
        at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
        at Project1.results(Project1.java:66)
        at Project1.main(Project1.java:87)

这是我的全部代码:

public class Project1() {

    public void results(String fileName){


            double x, y, xc, yc, rad, radius; 

            int number_of_circles = 0;
            try {
              Scanner scanner = new Scanner(new BufferedReader(new FileReader(fileName))); 

              while(scanner.hasNext()) {

                x = scanner.nextDouble();
                y = scanner.nextDouble();
                rad = scanner.nextDouble();
                if(rad > 0) { 
                    number_of_circles++;
                }
              }

            } 
            catch(Exception exception) {
              System.err.println("An error has occured."); 
              exception.printStackTrace();
            }

    }
    public static void main(String args[]){
        Project1 P = new Project1();
        P.results("Project1.data"); 

    }
}

我尝试了具有不同值的不同文件,但似乎没有帮助。谢谢。我查看了其他线程,但它们似乎没有涵盖完全相同的问题。 看起来如果我只在 Project1.data 中放入整数值,那么它可以工作,但显然我想允许其他值

Project1.data 值:

9.50 2.40 3.20
2.20 3.40 5.60
2.50 2.40 3.20
3.20 4.40 5.60 

【问题讨论】:

  • 文件“Project1.data”不是以 3 个空格分隔的双精度值开头。
  • 我在帖子中写了 project1.data 的样子。我应该以不同的方式将其分开吗?每 3 个值之间有一个空格,每组后有一个输入

标签: java


【解决方案1】:

您的语言环境是否可能需要 , 作为分隔符,而您的文件包含 .

相关问题:Best way to parseDouble with comma as decimal separator?

这是另一个相关问题,其中包含Scanner 的提示:Java - Scanning comma delimited double and int values

【讨论】:

  • 是的,你是对的!我不会考虑我的 VSC 使用 , 作为分隔符。为什么会这样?我可以以任何方式更改它吗?
  • 用另一个链接更新了我的答案 - 专门针对 Scanner。这应该可以帮助你。简而言之:首先为您的 Scanner 实例定义另一个区域设置 - 例如,英语应该可以工作。
  • 谢谢。最后一个问题 - 这是我的语言环境的问题还是默认情况下会发生?这个问题是我作业的一部分,所以我不确定我的电脑是否会出现这个问题,或者我的讲师可能会在运行我的代码时遇到问题。
  • 通常是特定于国家和语言的。如果您手动对语言环境进行硬编码(定义),则该代码应该可以在任何计算机上运行。
猜你喜欢
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
  • 2018-08-01
  • 2021-09-13
相关资源
最近更新 更多