如何解决有没有办法在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"}
。
Split方法采用正则表达式模式
您会使用字符类(例如"[\\s()]"
)将空格和方括号中的多个字符传递给您,但是,您随后失去了方括号,因此操作顺序将是未知的
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。