输入两种答案方式

时间:2018-03-30 18:31:10

标签: java input java.util.scanner

我正在设计一个简单的计算器。有一些限制,用户可以输入5 5 *5 * 5。我不知道怎么做。

到目前为止我的代码是......

Scanner kb = new Scanner(System.in);
System.out.println("Enter what you want to calculate");
String line = kb.nextLine();
Scanner scan = new Scanner(line);
int number1 = scan.nextInt();
int number2  = scan.nextInt();
char operator = scan.next().charAt(0);

事情是,以这种特定的方式,如果他们不输入(2 2 *),系统崩溃。我需要修改什么,以便他们也可以输入2 * 2

3 个答案:

答案 0 :(得分:0)

此代码:

int number1 = scan.nextInt();
int number2  = scan.nextInt();
char operator = scan.next().charAt(0);

表示"期望输入的第二部分是整数;如果它不是一个整数,则出现错误"

有两种方法可以解决这个问题:

1)编写查看第2项的代码,判断它是整数还是符号,然后继续。

2)或者,您可以处理错误。在可能引发错误的调用周围放置一个try-catch,然后以不同的方式处理输入。

int number2;
char operator;
try {
    number2  = scan.nextInt();
    operator = scan.next().charAt(0);
    // process the input in this order
    ...
} catch (NumberFormatException e) {
    // process the input in another order
    ...
}

答案 1 :(得分:0)

Scanner kb = new Scanner(System.in);
        System.out.println("Enter what you want to calculate");
        String line = kb.nextLine();
        Scanner scan = new Scanner(line);
        String number1 = scan.next();
        String number2  = scan.next();
        char operator = scan.next().charAt(0);

获得数据线后,您可以转换整数并按照自己的意愿进行操作

答案 2 :(得分:0)

以下是检查可能格式的代码,如果用户输入了正确的格式化输入,则打印值

onDragOver(event){
 var x = event.offsetX;
 var y = event.offsetY;
}