java 字符串"a+b/(b*d)" 怎么获取a,b,c,d的值 然后按照这个计算公式计算呢

如题所述

题目表达不清晰。
一楼的答案有多准确???
abcd只能是个位数??
假设abcd分别是1,11,111,1111呢??
========================================
用正则表达式获取4个整数,然后计算
public int calc(String str){
Pattern ppp=Pattern.compile("\\d");
Matcher mmm=ppp.matcher(str);
int[] aa=new int[4];
for(int i=0;mmm.find();i++){
aa[i]=Integer.valueOf(mmm.group());
}
return aa[0]+aa[1]/(aa[2]*aa[3]);
}
或者。。
======================================
import javax.script.Invocable;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.SimpleBindings;

public class Test {
public static void main(String[] args) {
ScriptEngineManager sem = new ScriptEngineManager();
// 添加上下文绑定数据
SimpleBindings bindings = new SimpleBindings();
bindings.put("aaa", 1);
bindings.put("bbb", 2);
ScriptEngine engine = sem.getEngineByExtension("js");
engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
try {
Object res = engine.eval("aaa+bbb");
System.out.println(res);

String script = "function sum(a,b){ return a+b;}";
engine.eval(script);
Invocable inv = (Invocable) engine;
Object obj = inv.invokeFunction("sum", 1, 2);
System.out.println(obj);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-05
先将a+b/(b*d) 这个字符串里面的a,b,c,d强行转换成int型
第2个回答  2012-01-04
String str = "a+b/(b*d)";

int a = Integer.parseInt(str.charAt(0)+"");
int b = Integer.parseInt(str.charAt(2)+"");
int c = Integer.parseInt(str.charAt(5)+"");
int d = Integer.parseInt(str.charAt(7)+"");
double sum = a+b/(b*d);
第3个回答  2012-01-04
一楼给出的答案是正确的,先将a+b/(b*d) 这个字符串里面的a,b,c,d强行转换成int型,再进行数学运算.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网