使用 nextFloat() 线程“main”中出现 java.util.InputMismatchException 异常

2024-04-23

所以我正在编写一个小程序来计算学生最好成绩的平均值,当我运行它时,我在线程“main”java.util.InputMismatchException中收到此错误异常。

我看到一篇文章说要使用 nextLine 然后使用 parseInt (在本例中为 parseFloat) ,但我不允许在这里使用它,所以我正在寻找关于我可以做什么的另一种意见。

Code:

导入java.util.Scanner;

公开课 G2a {

static float average(float[] vals) { //Returns the average of an array;
    float avg = 0F;
    for (int i = 0; i < vals.length; i++)
        avg += vals[i];
    return avg /= vals.length;
}

static int indexOfMin(float[] vals) { // Returns the index of the minimum;
    int idx = -1;
    for (int i = 0; i < vals.length ; i++) {
        float v = vals[i];
        if(v>=0 && (idx==-1 || v<vals[idx])) idx=i;
    }
    return idx;
}

static float[] removeMins(int n, float[] vals) { //Removes n minimums of the array and returns a new array without them;
    while (n > 0) {
        int a = indexOfMin(vals);
        vals[a] = -1;
        --n;
    }
    float[] res = new float[vals.length - n];
    int b = 0;
    for (int i = 0; i < vals.length; i++)
        if (vals[i] != -1) {
            res[b] = vals[i];
            ++b;
        }
    return res;
}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println("Number of Grades ? ");
    float[] vals= new float[in.nextInt()];
    for (int i = 0; i < vals.length ; i++) {
        System.out.println("Grade "+ (i+1) +" ? ");
        vals[i]=in.nextFloat(); //Line of the Error;
    }
    System.out.println("Number of Grades to the Average ? ");
    int n = in.nextInt();
    float [] best = removeMins(n,vals);
    System.out.print("Best " +n+ " Grades: ");
    for (int i = 0; i < best.length ; i++)
        System.out.print(best[i]);
    System.out.println("");
    System.out.println("Average of the " +n+ " Best Grades = "+average(best));
}

}

EDIT

我正在使用 Intellij

输入和完整错误消息:

年级数?

5

1级 ?

7.3

Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:860)
at java.base/java.util.Scanner.next(Scanner.java:1497)
at java.base/java.util.Scanner.nextFloat(Scanner.java:2399)
at G2a.main(G2a.java:42)

进程已完成,退出代码为 1


我猜你在输入中使用了类似的东西:

1.5

请改用以下内容:

1,5

输入浮点数。如果您使用点,解决方案可能是精确使用的区域设置Scanner。尝试更改第一行main()方法来自:

Scanner in = new Scanner(System.in);

to:

Scanner in = new Scanner(System.in).useLocale(Locale.US);

此行将精确显示您在输入十进制数字时要使用的表示法。看,它如何改变了输入的读取方式(现在点可以,而逗号不行):

Number of Grades ? 
3
Grade 1 ? 
1.3
Grade 2 ? 
1,4
Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Unknown Source)
    at java.base/java.util.Scanner.next(Unknown Source)
    at java.base/java.util.Scanner.nextFloat(Unknown Source)
    at G2a.main(G2a.java:44)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 nextFloat() 线程“main”中出现 java.util.InputMismatchException 异常 的相关文章

随机推荐

  • Python main() 意外缩进错误

    我不知道如何解决这个问题 我尝试过重新输入该程序 我收到最后一个主函数的意外缩进错误 resident 81 nonresident 162 def main initialize counters and total tuition re
  • 如何在函数式编程中为AST节点生成稳定的id?

    我想将一个特定的 AST 节点替换为另一个节点 并且这个替换的节点是由交互式用户输入指定的 在非函数式编程中 可以使用可变数据结构 并且每个AST节点都有一个对象引用 因此当我需要引用特定节点时 我可以使用这个引用 但在函数式编程中 使用I
  • I 类型指令的 MIPS 周期数 (addi)

    So on https en wikipedia org wiki Cycles per instruction https en wikipedia org wiki Cycles per instruction它说 对于多周期MIPS
  • 用 Numpy 向量化运算替换 For 循环

    在下面的代码中 我有一个简单的 for 循环 我希望将其替换为更快的矢量化 numpy 操作 import numpy as np b np array 9 8100 60 7 dtype np float64 a np array 584
  • 隐藏滚动时从底部开始的 UIView

    我有一个tableView我想隐藏UIView当用户向下滚动时位于其上方 目前 滚动隐藏UIView从上到下 我怎样才能隐藏UIView from 自下而上 如下例所示 这有点麻烦 但可能是最简单的方法 在故事板中 将UIView在顶部 我
  • iPhone 5 的 iOS 模拟器 - 1136 x 640 分辨率 [重复]

    这个问题在这里已经有答案了 可能的重复 如何测试 iPhone 5 的应用程序 https stackoverflow com questions 12434011 how to test apps for iphone 5 在 xcode
  • 如何使用 Access-Control-Allow-Origin:https://www.example.com?

    我想从 HTTP 网页进行 HTTPS 调用 我希望解决这个问题Access Control Allow Origin 我该如何使用它 在 HTTPS 页面 您从 HTTP 页面请求 上设置标头 访问控制允许来源 http www exam
  • 如何从内核空间读取/写入 linux /proc 文件?

    我正在编写一个由用户程序和内核模块组成的程序 内核模块需要收集数据 然后将其 发送 到用户程序 这必须通过 proc 文件来完成 现在 我创建了文件 一切都很好 并且花了很长时间在互联网上寻找答案 但仍然找不到 如何读 写 proc 文件f
  • 如何使用 jQuery 在 ASP.NET MVC 中重新加载带有部分视图的 div?

    我有一个 div 其部分位于页面的某处 我在按钮上有一个事件 我如何编写一个 Javascript 来获取 div 并重新加载它 并重新加载部分视图 我从另一个角度看这个问题 但我现在不能这样做 但我需要同样的事情发生 只由 jQuery
  • 如何从查询窗口向 SQL Server 插入 unicode 文本

    我正在使用以下代码 INSERT INTO tForeignLanguage Name VALUES 这个值像这样插入 如何从 sql Management Studio 查询窗口插入 unicode 文本 以下应该有效 N表示 MSSQL
  • 无效的 Apple Watch 图标文件名必须与模式“*@x.png”匹配

    我正在尝试向我的应用程序提交更新以包含 Apple Watch 功能 但是每当我验证构建时 我都会收到下面屏幕截图中详细说明的错误 查看底部错误 我的文件名似乎与模式匹配 所以我不明白问题是什么 如果我能为 1 个图标找到正确的模式 那么我
  • 找出哪些本地分支与远程不同步

    假设我有一个包含多个分支的 git 存储库 我怀疑有些分支没有被推到上游 或者已经过时 或者两者兼而有之 即分歧 有没有一种方法可以通过一个命令找出哪些分支与远程不同步 写一个脚本是可以的 但我想知道是否已经有这样的脚本 我已经做了一个脚本
  • 如何安全地向特定用户发送消息

    我正在使用 ASP NET MVC 5 和 SignalR 我想向特定用户发送消息 我遵循了中解释的方法本教程 https learn microsoft com en us aspnet signalr overview guide to
  • Xcode - 从不同视图更新 ViewController 标签文本

    我的项目中有两个视图控制器ViewController SettingsView 在这里我尝试更新ViewController s标签 当我点击SettingsView s返回键 NSLog工作正常 但标签没有更新 请帮我 设置视图 m I
  • PHP:会话不工作

    当用户在客户端登录时 我将重定向到服务器 一旦验证了他的 user id 和密码 我将在 user id 上设置会话 我将重定向回客户端 然后 我要求填写个人资料信息 如果他想通过 facebook 填写信息 则会出现弹出窗口 请求 fac
  • 匹配 mod_rewrite 规则正则表达式中的问号

    我正在寻找使用多个子字符串重写网址 一个子字符串作为子目录被请求 而任何其他子字符串作为普通查询字符串参数被请求 例如 我想重写 url http www mysite com mark friends page 2 to http www
  • 字符串计算器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 各位程序员大家好 我正在创建一个计算器C 我有一个字符串变量math其中包含100 5 2 我怎样才能显示它的输出498在我的控制台中
  • 使用 bcp 获取可构建的 Boost 提取

    我正在使用 bcp 从 Boost 中提取 Boost Archive 不幸的是我无法构建这个摘录 Boost Archive 不是一个仅包含头文件的库 贾姆抱怨 Unable to load Boost Build could not f
  • 如何在 Eclipse IDE 中默认将 Scala 项目作为 Scala 应用程序运行?

    我是 Eclipse IDE 的新手 问题是如何默认将 Scala 项目作为 Scala 应用程序运行 当我通过按 R 键运行项目时 它总是询问如何将其作为 Scala 或 Java 应用程序运行 有没有办法跳过这个并始终默认以 Scala
  • 使用 nextFloat() 线程“main”中出现 java.util.InputMismatchException 异常

    所以我正在编写一个小程序来计算学生最好成绩的平均值 当我运行它时 我在线程 main java util InputMismatchException中收到此错误异常 我看到一篇文章说要使用 nextLine 然后使用 parseInt 在