0

2つの値を解析して加算するにはどうすればよいですか?このパターンを使用します:

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 以降) を使用して、次のように文字列から計算を行うことができます。

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 に答える