16

当后面的符号遇到“+,-,*,/,=”时,我想拆分一个字符串。我正在使用拆分函数,但这个函数只能接受一个参数。此外,它不适用于“+”。我正在使用以下代码:-

Stringname.split("Symbol");

谢谢。

4

4 回答 4

47

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

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

请参阅此处的文档。

这是您的示例:

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

输出:

a
b
c
d
e
f

笔记:

  • s 的保留字符Pattern必须用 . 进行双重转义\\编辑:这里不需要。
  • 模式中的[]括号表示一个字符类。
  • 更多关于这里Pattern
于 2013-08-05T14:51:04.763 回答
10

您可以使用正则表达式:

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

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

于 2013-08-05T14:53:27.790 回答
6

你需要正则表达式。此外,您需要正则表达式OR运算符:

String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\=");
于 2013-08-05T14:49:50.557 回答
1

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

一个非常基线的表达式是\+|\-|\\|\*|\=. 比较容易理解,你想要的每个符号都用 转义,每个符号之间用(或)符号\隔开。|例如,如果您也想添加^,您需要做的就是附加|\^到该语句。

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

于 2013-08-05T14:54:00.057 回答