Scanner.nextInt(x)抛出PatternSyntaxException

时间:2014-11-05 05:03:26

标签: java java.util.scanner patternsyntaxexception

我知道我这么高兴但是我想通过我的中期

我遇到的许多问题之一是 “”编写一个if-else语句,如果变量x大于100,则将20分配给变量y。否则,它应该为变量y指定0。“

我看起来像这样

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

Enter a number for x: Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 525

2 个答案:

答案 0 :(得分:4)

而不是:

x = keyboard.nextInt(x);

执行:

x = keyboard.nextInt();

如果您将参数传递给nextInt,则会将其解释为输入的整数的基数。

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

答案 1 :(得分:0)

应该是这样的:

x = keyboard.nextInt();