java - 如何在不使用扫描仪的情况下将字符/算术运算符作为用户的输入

标签 java

感谢您查看我的问题。我想问,我可以在不使用扫描仪的情况下将字符或算术运算符作为用户的输入吗?

这是我编写一个程序的代码,使用算术运算符对两个数字执行代数运算。 (代数运算为+、-、*、/、%)

import java.util.Scanner;
class q4
{
    public static void main(String args[])
    {
        Scanner s = new Scanner(System.in );
        int a, b;
        char operator;
        System.out.print("Enter A : ");
        a=s.nextInt();
        System.out.print("Enter B : ");
        b=s.nextInt();
        System.out.print("Enter operator (+, -, *, /)");
        operator = s.next().charAt(0);
        double addition  = a+b;
        double subtraction  = a-b;
        double multiplication  = a*b;
        double division  = a/b;

        switch(operator)
        {
            case '+' :
            {
                System.out.print("Total after Addition is : "+addition);
                break;
            }
            case '-' :
            {
                System.out.print("Total after Subtraction is : " +subtraction);
                break;
            }
            case '*' :
            {
                System.out.print("Total after Multiplication is : "+multiplication);
                break;
            }
            case '/' :
            {
                System.out.print("Total after Division is : "+division);
                break;
            }
            default :
            {
                System.out.print("Please select proper operator");
                return;
            }
        }
    }
}

感谢您在百忙之中回复我:)

最佳答案

我不太确定在这种情况下为什么不使用 Scanner...但是,这些是在不使用它的情况下读取用户输入的其他一些方法:

  1. 使用JOptionPane ( read more about it here )

用途:

 a = Integer.parseInt(JOptionPane.showInputDialog("Enter A :"))

而不是:

System.out.print("Enter A : "); 
a=s.nextInt(); 

将其用于所有不同的输入。

  • 使用 System.in 创建读取器变量,并使用 BufferedReader 定义变量 a 来获取输入:

    InputStreamReader isr = new InputStreamReader(System.in); 
    BufferedReader br = new BufferedReader (isr);
    try {
    a = Integer.parseInt(br.readLine());
    } catch (IOException e) {
    e.printStackTrace();
    }
    
  • 顺便说一句,在知道用户想要哪个操作之前,您无需执行所有操作。更改此:

    double addition  = a+b;
    double subtraction  = a-b;
    double multiplication  = a*b;
    double division  = a/b;
    
    switch(operator)
    {
        case '+' :
        {
            System.out.print("Total after Addition is : "+addition);
            break;
        }
        case '-' :
        {
            System.out.print("Total after Subtraction is : " +subtraction);
            break;
        }
        case '*' :
        {
            System.out.print("Total after Multiplication is : "+multiplication);
            break;
        }
        case '/' :
        {
            System.out.print("Total after Division is : "+division);
            break;
        }
        default :
        {
            System.out.print("Please select proper operator");
            return;
        }
    }
    

    仅此:

    switch(operator)
    {
        case '+' :
        {
            double addition  = a+b;
            System.out.print("Total after Addition is : "+addition);
            break;
        }
        case '-' :
        {
            double subtraction  = a-b;
            System.out.print("Total after Subtraction is : " +subtraction);
            break;
        }
        case '*' :
        {
            double multiplication  = a*b;
            System.out.print("Total after Multiplication is : "+multiplication);
            break;
        }
        case '/' :
        {
            double division  = a/b;
            System.out.print("Total after Division is : "+division);
            break;
        }
        default :
        {
            System.out.print("Please select proper operator");
            return;
        }
    }
    

    关于java - 如何在不使用扫描仪的情况下将字符/算术运算符作为用户的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48239579/

    相关文章:

    java - 在 Jpg 图像上绘制线条或矩形并将其保存在 Android 应用程序中

    java - JSON 检查器以避免 com.google.gson.stream.MalformedJsonException

    java - 如何在 Java 中比较字符串?

    java - Java自动删除JSON字符串中的引号

    java - 强制 BigDecimals 使用科学计数法

    java - 气泡插件不起作用

    Java Getter 和 Setter 方法

    java - 为什么我的程序不能删除它在Win7下创建的文件?

    java - 有一种用Java模拟菱形继承(钻石问题)的方法

    java - 为什么不存在 SkipList 的非并发版本