java - Scanner.nextInt(x) 抛出 PatternSyntaxException

标签 java java.util.scanner patternsyntaxexception

我知道我问这个问题很笨,但我想通过期中考试

我遇到的许多问题之一是 ""编写一条 if-else 语句,如果变量 x 大于 100,则将 20 赋给变量 y。否则,应将 0 赋给变量 y。"

我的看起来像这样

import java.util.Scanner;

public class ifelseprac1 {

    public static void main(String[] args) {
        int y;
        int x=0;

        Scanner keyboard = new Scanner(System.in);

        System.out.print("Enter a number for x: ");
        x=keyboard.nextInt(x);

        if (x>100)
            y=20;           
        else 
            y=0;
    }
}

我得到的错误代码是

配置:ifelseprac1 - JDK 版本 1.8.0_25

为 x 输入一个数字:线程“主”java.util.regex.PatternSyntaxException 中出现异常:索引 525 附近未封闭的字符类

最佳答案

而不是这样做:

x = keyboard.nextInt(x);

做:

x = keyboard.nextInt();

如果将参数传递给 nextInt ,它被解释为输入整数的基数。

我猜测,对于某些基数,Java 生成的用于提取整数的正则表达式不正确,但需要调试 JDK 才能确定。

关于java - Scanner.nextInt(x) 抛出 PatternSyntaxException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26750042/

相关文章:

java - 如何在Activity和其他Activity创建的线程之间进行通信

java - 如何将 GET 参数传递给 Retrofit 请求

java - 如何让我的扫描仪以多种方法工作

java - 如何扫描同一个包内的txt?

java - 模式语法异常

java - replaceAll() 返回 PatternSyntaxException

java - 在 Java 中用 '\' 替换单个 '\\'

java - FontAwesome 图标不会显示在 Android 应用程序上

java - 垃圾收集的哪一部分需要 Sys 时间?

java - 如何限制用户扫描仪输入数据类型(java)?