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

在java中拆分多个符号上的字符串,java,string,symbols,split,Java,String,Symbols,Split,当下列符号遇到“+,-,*,/,=”时,我想拆分一个字符串 我使用的是拆分函数,但是这个函数只能接受一个参数。而且它不能处理“+”。 我正在使用以下代码:- Stringname.split("Symbol"); 谢谢。您需要正则表达式。此外,您还需要regex或运算符: String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\="); String.split将正则表达式作为参数 这意味着您可以在一个参数中替换任何符号或文本抽象,以便拆分字

当下列符号遇到“+,-,*,/,=”时,我想拆分一个字符串 我使用的是拆分函数,但是这个函数只能接受一个参数。而且它不能处理“+”。 我正在使用以下代码:-

Stringname.split("Symbol");

谢谢。

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

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

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

这意味着您可以在一个参数中替换任何符号或文本抽象,以便拆分
字符串

见文件

以下是您案例中的一个示例:

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的保留字符必须使用
    \\
    进行双转义编辑:此处不需要
  • 模式中的
    []
    括号表示字符类
  • 更多关于
    模式的信息

您可以使用正则表达式:

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

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

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

一个非常基本的表达式应该是
\+\-\\\\\\\*\\=
。相对容易理解,您想要的每个符号都用
\
转义,每个符号都用
(或)符号分隔。例如,如果您也想添加
^
,则只需将
\^
附加到该语句中即可


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

您从阅读javadoc开始了吗?对于为什么在
+
上拆分并不能满足您的需求,必须有一些解释。也许可以看看:@RohitJain yep,刚刚意识到。我已经编辑了我的答案,谢谢你指出。@saumyaraj我不明白你的问题?我的意思是,当我在拆分函数中使用“+”时,它向我显示了类似“悬挂元字符”的错误。你能解释一下这个错误吗?Thanks@saumyaraj对这是元字符,如中所示,是
模式的保留字符。它表示一个量词(有关更多信息,请参见页面)。它在字符类中可以正常工作,但如果在字符类之外被解释为文本“+”则需要转义。在您的情况下,只需尝试将其双重转义为
\\+
,而不是
+
input.split(“[+*-/=]”)还包括
。以拆分
“a,b.c”
为例,因为从
*
/
的范围包括这些字符
甚至包括数字、冒号、分号和
字符类中的破折号始终被视为范围分隔符,除非它位于第一个或最后一个位置。