我正在尝试根据正则表达式将字符串拆分为标记。但是 split() 给出错误,指出非法转义序列。
我正在尝试将以下字符串拆分为标记。
例如下面的字符串转换成
1+2.0-3.145/4.0
这个
1 2.0 3.145 4.0
&这个
+ - /
这是我编写的正则表达式,但这有一些问题并给出错误。
String[] tokens = expression.split("\\+\\-\\x\\/");
我做错了什么?
编辑: 我的最终目标是评估包含数学表达式的字符串并计算其结果。有没有可以在Android上使用的库?
最佳答案
将正则表达式更新为 expression.split("[-+/]")
如果你想数组,你可以使用它:
List<String> operators = new ArrayList<>();
List<String> operands = new ArrayList<>();
StringTokenizer st = new StringTokenizer(expression, "+-/", true);
while (st.hasMoreTokens()) {
String token = st.nextToken();
if ("+-/".contains(token)) {
operators.add(token);
} else {
operands.add(token);
}
}
关于java - 将字符串转换为标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43017273/