字符串“3 + 6 =”如何进行计算!!!!

timi先生
全栈领域新星创作者
2020-08-30 11:40:00
同标题,字符串“3 + 6 =”如何计算值。字符串中有空格,且只涉及+ - *三种运算!!这个该如何计算。

 
String r = “3 + 6 =”;
String[] str = r.split("");


int a = Integer.parseInt(str[0]);
int b = Integer.parseInt(str[2]);
int c = 0;
if(str[1].equals("+")){
c = a+b;
}else if(str[1].equals("-")){
c = a-b;
}else if(str[1].equals("*")){
c = a*b;
}

str[3] = String.valueOf(c);


System.out.println(str[0]+str[1]+str[2]+str[3]);


Exception in thread "main" java.lang.NumberFormatException: For input string: "+"

at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.base/java.lang.Integer.parseInt(Integer.java:642)

at java.base/java.lang.Integer.parseInt(Integer.java:770)

at pack.Solution.main(Solution.java:29)
我的方式报错了。
...全文
273 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
廾匸随笔 2020-08-31
  • 打赏
  • 举报
回复
在split之前用.replaceAll(" ","")把空格移除掉再处理就好了
作妖的程序员 2020-08-31
  • 打赏
  • 举报
回复
把String[] str = r.split("")改成String[] str = r.split(" ") 不然你的str里就是[3, ,+, ,6, ,=] 然后按照其他的都不改,最后输出的结果是 3+69。str[3]是‘=’,被计算结果9替换了
qybao 2020-08-31
  • 打赏
  • 举报
回复
String str = r.split(“ “); //这里以空格分割字符串 另外,对于这类型的计算,可以借助脚本引擎 比如 ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript"); String exp = "3+6”; System.out.println(engine.eval(exp));
timi先生 2020-08-31
  • 打赏
  • 举报
回复
我有些蠢,老纠结“=”这个没了,睡一觉起来才发现 人家字符串里带着 “=”

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧