java 字符串"a+b/(b*d)" 怎么获取a,b,c,d的值 然后按照这个计算公式计算呢
4个回答
展开全部
题目表达不清晰。
一楼的答案有多准确???
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();
}
}
}
一楼的答案有多准确???
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();
}
}
}
展开全部
先将a+b/(b*d) 这个字符串里面的a,b,c,d强行转换成int型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
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);
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼给出的答案是正确的,先将a+b/(b*d) 这个字符串里面的a,b,c,d强行转换成int型,再进行数学运算.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询