请问如何用java将字符串变为等式计算?
java吧
全部回复
仅看楼主
level 9
忆里游
楼主
比如String s ="1+2“;如何将其转为int后为3?
2014年08月19日 14点08分
1
level 12
sat1993
String s=Integer.parseInt("1")+Integer.parseInt("2");
2014年08月19日 14点08分
2
忆里游
额,谢谢,可是如果中间的加号是不定的,可能加可能减,还可能有多个数字和加号……
2014年08月19日 14点08分
sat1993
那你也可以用String s = String.valueOf(1+2);
2014年08月19日 14点08分
忆里游
回复 sat1993 :String d = "1+2";int s = String.valueOf(d);这样可以么?俺的等式是不定的啊
2014年08月19日 14点08分
sat1993
明显不行。如果要按你这样的想法的就很麻烦了。应该等式不定的话就按运算符拆开字符串然后用Integer.parseInt(s)来获取int再进行计算吧。String.valueOf(d)是返回的String不是Int
2014年08月19日 14点08分
level 8
元婴癫疯期
按加号拆成两个字符串,转换一下就可以加了
2014年08月19日 14点08分
3
忆里游
谢谢
,我有些想法了
2014年08月19日 14点08分
level 11
🔥魔落🔥
我有代码能计算写好的算式。
2014年08月20日 01点08分
4
🔥魔落🔥
推荐你去看一下数据结构与算法一书,里面在将stack的那节有实现计算器的方法
2014年08月20日 01点08分
level 11
🔥魔落🔥
2014年08月20日 01点08分
5
忆里游
谢谢
2014年08月20日 04点08分
level 11
拯救司马
楼主你个杀千刀的! 浪费老子时间!
我是未来会拯救世界的程序员,不服来辩,来辩打死!
-----打dota的司马
2014年08月20日 03点08分
6
忆里游
不是每个后面都有标点,比如123-45+67-78之类的
2014年08月20日 04点08分
忆里游
回复 忆里游 :阿,最后是-89,打错了
2014年08月20日 04点08分
level 13
benben2412
public static void main(String[] args) throws Exception{
String expression = "1+2";
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("javascript");
System.out.println(engine.eval(expression));
}
}
2014年08月20日 04点08分
8
忆里游
大师,我看到了谜一般的代码,一会就试一试
2014年08月20日 04点08分
benben2412
回复 忆里游 :貌似和你的要求有点差距,这个显示的是double型。。
2014年08月20日 04点08分
忆里游
回复 benben2412 :
不管这么说谢谢你
2014年08月20日 04点08分
benben2412
回复 忆里游 :改成ScriptEngine engine = sem.getEngineByName("jexl");就能输出3了,你可以试试
2014年08月20日 04点08分
1