java - 在简单计算器中验证数学运算符

标签 java

我需要帮助验证计算器程序中的运算符,要求用户提供两个数字和一个运算符,即 3 + 2,但我无法验证该运算符。如果用户输入 +、-、* 或/运算符,它会告诉我此输入无效,而实际上应该没问题。验证第一个数字没问题,没有问题。有人可以帮忙吗?

import java.util.Scanner;
public class SimpleCalculator {

    public static void main(String[] args) {
        int int1;
        String operator;
        int int2;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter first number: ");

        while(!scan.hasNextInt()){
            scan.next();
            System.err.print("Invalid input please enter a number: ");
        }

        int1 = scan.nextInt();

        System.out.println("Enter operator (+, -, *, /): ");

        while(!scan.equals("+") && !scan.equals("-") && !scan.equals("*") && !scan.equals("/")){
                scan.next();
            System.err.print("Invalid input please enter a valid operator (+, -, *, /");
        }

        operator = scan.next();

        System.out.println("Enter second number: ");


        scan.close();
    }

}

最佳答案

您需要检查 scan.next() 的输出,而不是 scan 的输出

    System.out.println("Enter operator (+, -, *, /): ");
    operator = scan.next();
    while(!operator.equals("+") && !operator.equals("-") && !operator.equals("*") && !operator.equals("/")) {
        System.err.println("Invalid input please enter a valid operator (+, -, *, /");
        operator = scan.next();
    }

关于java - 在简单计算器中验证数学运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092084/

相关文章:

java - 如果我使用 Java 而不是 PHP,这个 URL 应该指向哪里?

java - 如何通过读取 .txt 文件分配变量并将其设置为固定长度?

java - 更新 Java 中绑定(bind)的 JLabel 文本

java - 为什么我的ArrayList 是空的?

java - 如何配置 JDK 以供 gradle 在每台机器、每个项目上使用?

java - 如何仅关闭我的弹出式 JFrame

java - 如何在主类的数组中添加随机构造函数类的值?

java - 如何将 GlassFish 放到网上?

java - FileFilter Java 8 的方法引用

java - 在 java 中排除 file.lists() 中的系统文件