Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java上创建基本计算器?_Java - Fatal编程技术网

在Java上创建基本计算器?

在Java上创建基本计算器?,java,Java,如何输入一个完整的方程式,如1+2。因为到目前为止,我只能要求用户一次输入一个数字,我想知道如何让用户输入整个等式 import java.util.Scanner; public class TryCalculator { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code applicat

如何输入一个完整的方程式,如1+2。因为到目前为止,我只能要求用户一次输入一个数字,我想知道如何让用户输入整个等式

import java.util.Scanner;
public class TryCalculator {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Addition");
        System.out.println("Subtraction");
        System.out.println("Division");
        System.out.println("Multiplication");
        System.out.println("Natural Log");
        System.out.println("Exponent");
        System.out.println("**********************************");

       Scanner scan = new Scanner(System.in);
       Scanner keyboard = new Scanner(System.in);

       double value1;
       double value2;
       String op;

       System.out.println("enter a digit");
       value1 = scan.nextDouble();
       System.out.println("enter operation ");
       op = keyboard.next();
       System.out.println("enter second digit");
       value2 = scan.nextDouble();

        if(op.equals("+")){
            System.out.println(value1 + value2);

        }if(op.equals("-")){
            System.out.println(value1 - value2);

        }if(op.equals("/")){
            System.out.println(value1 / value2);

        }if(op.equals("*")){
            System.out.println(value1 * value2);

        }if(op.equals("^")){
            System.out.println(Math.pow(value1, value2));

        }if (op.equals("log")){
            System.out.println(Math.log(value1));

        }else{

        }  
    }   
}

如果您不想使用javascript或类似(,)的计算器 您可以使用简单的表达式,如
1+2

Scanner keyboard = new Scanner(System.in);
String exp = keyboard.next();
    String []all = exp.split(" ", -1);
/*
then
all[0] = first operation;
all[1] = operator;
all[0] = second operator
*/

//and you can do like this
void calculate(String []all) {

    Double value1 = Double.parseDouble(all[0]);
    Double value2 = Double.parseDouble(all[2]);
    String op = all[1];

     if(op.equals("+")){
            System.out.println(value1 + value2);

    }if(op.equals("-")){
        System.out.println(value1 - value2);

    }if(op.equals("/")){
        System.out.println(value1 / value2);

    }if(op.equals("*")){
        System.out.println(value1 * value2);

    }if(op.equals("^")){
        System.out.println(Math.pow(value1, value2));

    }if (op.equals("log")){
        System.out.println(Math.log(value1));

    }else{

    }  
}

这没有经过测试,但可以作为一个很好的起点。

阅读整行内容,然后分析字符串……看你能不能详细说明一下,我对这一点相当陌生。“这没有经过测试”显然是。因此,测试它并修复错误:)。在某些情况下,一个想法就足够了。我不必为他的所有应用程序编写代码。“我不必为他的所有应用程序编写代码。”谁说你应该这么做的?拜托,伙计,你为什么要和我捣乱?我只是想帮忙。如果你有一个更好的答案或者有很多时间来写一个“没有bug”的解决方案……那么继续吧,没有人阻止你这么做……如果你无法编写没有明显bug的代码,那么就ok。保持这个答案原样。我可没惹你。我只是说你的答案有问题(希望你关心好的答案)。别担心,我不会再打扰你了。