在多个符号上拆分java中的字符串

Splitting a string in java on more than one symbol

当符号遇到"+, - ,*,/,="时我想拆分一个字符串
我正在使用split函数,但是这个函数只能使用一个参数。而且它不能用于"+"。
我使用以下代码: -

1
Stringname.split("Symbol");

谢谢。


String.split将正则表达式作为参数。

这意味着您可以在一个参数中交替使用任何符号或文本抽象,以便分割String

请参阅此处的文档

以下是您案例中的示例:

1
2
3
4
5
String toSplit ="a+b-c*d/e=f";
String[] splitted = toSplit.split("[-+*/=]");
for (String split: splitted) {
    System.out.println(split);
}

输出:

1
2
3
4
5
6
a
b
c
d
e
f

笔记:

  • Pattern的保留字符必须使用\\进行双重转义。编辑:这里不需要。
  • 模式中的[]括号表示字符类。
  • 更多关于Pattern的信息。


您可以使用正则表达式:

1
String[] tokens = input.split("[+*/=-]");

注意:-应放在第一个或最后一个位置,以确保它不被视为范围分隔符。


你需要正则表达式。 Addionaly你需要正则表达式OR运算符:

1
String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\=");

为此,您需要使用适当的正则表达式语句。您列出的大多数符号都保留在正则表达式中,因此您必须使用\来转义它们。

一个非常基线的表达式是\+|\-|\\|\*|\=。相对容易理解,您想要的每个符号都用\进行转义,每个符号用|(或)符号分隔。例如,如果您想要添加^,那么您需要做的就是将|\^附加到该语句。

对于测试和快速表达,我喜欢使用www.regexpal.com