计算器

给定一个字符串形式的计算表达式,包含数字和四种运算符,需实现计算并处理除零错误。时间限制1000ms,内存限制64MB。输入输出说明及样例代码提供。
摘要由CSDN通过智能技术生成

题目描述

给定一个字符串形式的计算表达式,其中只包含数字和加+、减-、乘*、除/四种运算符,乘除计算优先级高于加减。

请对该计算表达式求值,并返回计算结果。如果在计算过程中遇到除零,则返回字符串error。

解答要求
时间限制: 1000ms, 内存限制: 64MB

输入输出

输入
一个字符串形式的计算表达式,长度范围:[1,100]

用例保证,输入数字和中间及最终计算结果的值都是整数,且在int型范围内。

输出
一个10进制整数; 或字符串error

样例

输入样例1
1+2*3-100/2
输出样例1
-43
输入样例2
3/0
输出样例2
error

代码

package com.atguigu.huawei;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
//这道题AC
public class Main3331
{
   
    public static void main(String[] args) {
   
        Scanner cin = new Scanner(System.in, StandardCharsets.UTF_8.name());
        String expression = cin.nextLine();
        cin.close();
        String result = calculate(expression);
        if(result.equals("Infinity")){
   
            System.out.println("error");
        }else {
   
            System.out.println(result);
        }
    }

    // 待实现函数,在此函数中填入答题代码
    private static String calculate(String expression) {
   
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        try {
   
            Object result = engine.eval(expression);
            return String.valueOf(result);
        } catch (ScriptException e) {
   
            return "error";
        }
    }
}
package com.atguigu<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haikuotiankongdong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值