当遇到符号“+,-,*,/,=”时,我希望能够拆分字符串。
我正在使用split函数,但该函数只能接受一个参数。而且它在处理“+”符号时不起作用。
我正在使用以下代码:
Stringname.split("Symbol");
谢谢。
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
注意事项:
Pattern
中的保留字符必须使用\\
进行双重转义。 编辑: 不需要在这里。[]
括号表示字符类。Pattern
的信息请参考此处。Pattern
中的保留字符。它表示一个量词(详见Pattern页面)。在字符类中它可以正常工作,但如果在字符类外被解释为字面意义上的“+”,则需要进行转义。在你的情况下,只需尝试将其双重转义为\\+
而不是+
即可。 - Mena您可以使用正则表达式:
String[] tokens = input.split("[+*/=-]");
注意:-
应放置在第一位或最后一位,以确保它不被视为范围分隔符。
input.split("[+*-/=]");
还包括 ,
和 .
。只是以 "a,b.c"
为例,因为从 *
到 /
的范围包括这些字符。 - jlordoinput.split("[+*/-=]");
包括数字、冒号、分号和 <
符号。 - jlordo你需要正则表达式。此外,你需要使用正则表达式中的OR
运算符:
String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\=");
为此,您需要使用适当的正则表达式语句。您列出的大多数符号都是正则表达式保留字符,因此您必须使用\
进行转义。
一个非常基本的表达式是\+|\-|\\|\*|\=
。相对容易理解,您想要的每个符号都用\
进行了转义,并且每个符号都用|
(或)符号分隔开来。例如,如果您还想添加^
,只需将|\^
追加到该语句即可。
对于测试和快速表达式,我喜欢使用www.regexpal.com