当前位置: 首页 > 知识库问答 >
问题:

程序在输入数组时遇到问题

彭建业
2023-03-14

以下代码的输出是:请输入您的单词: 你好, 凯沙夫, 鲍勃, doan kehsavbob 线程中的异常 “主要” java.lang.数字格式异常: 对于输入字符串: “kehsavbob” 在 java.base/java.lang.数字格式异常.为输入字符串 (数字格式例外.java:67) 在 java.base/java.lang.Integer.parseInt(整数.java:668) 在 Java.base/java.lang.integer.parseInt(整数.java:786) 在 MyClass.main(MyClass.java:101)

      public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // Read in the method name that we want to call
        System.out.print("Please enter your words: ");
        String methodName = sc.nextLine();
        // Read in number of words
        int numWords = Integer.parseInt(sc.nextLine());
        // Read in list of words
        String[] words = new String[numWords];
        for (int i = 0; i < numWords; i++) {
            words[i] = sc.nextLine();
        }
        sc.close();

        // Run the specified method
        switch (methodName) {
            case MIN_METHOD_NAME:
                System.out.println(minWordLength(words));
                break;
            case MAX_METHOD_NAME:
                System.out.println(maxWordLength(words));
                break;
            case RANGE_METHOD_NAME:
                System.out.println(wordLengthRange(words));
                break;
            case AVERAGE_METHOD_NAME:
                System.out.println(averageWordLength(words));
                break;
            case MODE_METHOD_NAME:
                System.out.println(mostCommonWordLength(words));
                break;
            default:
                throw new UnsupportedOperationException();
        }

}

共有1个答案

薄哲
2023-03-14

你试图从一个单词中解析出一个整数,这是行不通的。

替换:

int numWords = Integer.parseInt(sc.nextLine());
String[] words = new String[numWords];

跟:

String[] words = sc.nextLine().split("\W+");
 类似资料:
  • 总共有多少人住在1212 Main:2 1号人的名字是什么 2号的人叫什么名字:b 位于Roombillsplit.main.main(main.java:19) 1212 Main要拆分的账单总数是多少:

  • 这是一个问题:如果数组的每个元素小于或等于下一个元素,数组将被排序(按升序)。 编写一个名为isSorted的布尔值方法,该方法接受整数数组和数组中的元素数,并返回数组是否已排序。 在显示代码之前:我的逻辑是if-else if and-else语句应该首先确定数组的大小是0、1还是2。这是因为当大小等于1或2时,程序必须中断。当大小大于2时,程序应检查arr[size-1] 我知道循环更好我只是

  • 我从来没有用过红宝石,我想我应该试一试。安装似乎进行得很顺利(我想)。在我使用创建服务器后,麻烦就开始了,然后去设置路由,这样新项目就会出现,而不是红宝石欢迎屏幕。它产生的误差是 未初始化常量欢迎控制器 我在route controller中设置了路径,如下所示 我漏了一步吗?我正在使用installrails的说明在Windows7上安装rails。通用域名格式 这是请求的完整跟踪

  • 控制台日志, 似乎没有拾取数据库

  • 这是我收到的错误消息: 7:42:07 AM:执行任务'Demo.main()'... 执行任务:[Demo.main()]在项目C:\用户\shsh\AndroidStudioProjects\Learnjava2 开始Gradle Daemon... Gradle Daemon在8 s 119 ms中开始 失败:构建失败,但有例外。 > 错误:配置项目“app”时出现问题。 无法创建任务:应用

  • 无法使用“ADB反向”连接到开发服务器:spawnSync/home/sumit/android/platform-tools/ADB ENOENT 我还尝试使用$adb反向tcp:8081tcp:8081,但没有成功。