java - 将字符串转换为标记

标签 java regex string

我正在尝试根据正则表达式将字符串拆分为标记。但是 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/

相关文章:

regex - pg_dump --exclude-table 模式匹配

python - 字符串到数值数组

string - 从字符串数组中删除重复项/冗余项

java - 如果第一个字母是大写则删除单词

ruby - 如何更改此正则表达式以从未指定 v 参数的 Youtube URL 获取 Youtube 视频 ID?

regex - 如何将目录更改为没有字母的文件夹名称?

javascript - 将单词转换为链接并在html中替换它们

java - AR核心 : what is the min SDK version supported ?

java - 如何在字符移位后读取和打印字符串的整个输入?

java - 数据插入和可用之间存在滞后