微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在Java中对多个字符进行split? 使用正则表达式分割使用了分割字符工作功能

如何解决有没有办法在Java中对多个字符进行split? 使用正则表达式分割使用了分割字符工作功能

我试图通过将方括号和空格分开来分割格式为((1 + 4)*(1-0)”的用户输入,因此我得到了一个由操作数和运算符组成的数组。我一直在使用split()方法,但是我不知道如何通过两个参数。有什么建议吗?

解决方法

使用正则表达式分割

您可以使用Regular Expression(简称:regex)-split方法的单个参数。

此正则表达式包含用于分隔字符串的模式(例如,多个字符)。换句话说,您可以将所有拆分字符(空格和方括号)放入单个参数中。

使用了分割字符

在您的情况下,三个字符用于拆分公式:

  • 一个空白,在\s所标注的正则表达式中(使用反斜杠与普通字母's'区分)
  • \(表示的正则表达式中的左括号(单独使用时,在正则表达式中具有特殊含义,因此也会被反斜杠转义)
  • \)表示的正则表达式中的右括号(单独使用,在正则表达式中具有特殊含义,因此也可以用反斜杠转义)

这可以与(boolean)或|结合使用,作为与它们各自匹配的完整正则表达式:\s\(\)

提示:您可以在RegexPlanet上测试此表达式和其他正则表达式。

工作功能

注意:在Java中,您必须转义字符串内带有另一个反斜杠的反斜杠。因此,空白正则表达式在字符串\\s中看起来像这样。

    public static String[] splitFormula(String formula) {
        return formula.split("\\(|\\)|\\s"); // split by opening-parenthese or closing-parentheses or whitespace
    }

将返回以下字符串数组{"1","+","4","*","1","-","0"}

运行this demo on IDEone

,

Split方法采用正则表达式模式

您会使用字符类(例如"[\\s()]")将空格和方括号中的多个字符传递给您,但是,您随后失去了方括号,因此操作顺序将是未知的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。