0

如何解析和添加两个值?我使用这种模式:

String s = "6 + 7 =";

包括间距,我需要得到“13”

可以使用正则表达式,还是有其他方法可以轻松做到这一点?

提前感谢您的帮助。

4

2 回答 2

2

如果你想使用正则表达式,你可以这样做:

Pattern pattern = Pattern.compile("(\\d+)\\s*\\+\\s*(\\d+)\\s*=");
Matcher matcher = pattern.matcher("6 + 7 =");
if (matcher.matches()) {
    System.out.println(Integer.valueOf(matcher.group(1)) + Integer.valueOf(matcher.group(2)));
}
于 2012-11-15T22:50:22.277 回答
1

它必须是正则表达式吗?如果没有,您可以使用 JavaScript 引擎(自 Java 1.6 起)从 String 进行计算,例如:

ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");

Double d=(Double)engine.eval("1 + 2 * 3");
System.out.println(d);
于 2012-11-15T22:52:29.210 回答