Java 如何将字符串拆分为某个字符串?

Java 如何将字符串拆分为某个字符串?,java,string,split,Java,String,Split,我想按字符序列分割字符串,而不是按单个字符分割。我有这个: String m=“Alcides&&ola&&Alcides”; String[]split=m.split(&|&”); 系统输出打印项次(拆分[0]+拆分[1]+拆分[2]); 我的目标是在split[0]->Alcides和split[1]->ola和split[2]->Alcides 但是,System.out.println的结果是: Alcides|ola| 需要一个正则表达式。这意味着您必须退出|(这是一个) 需要一

我想按字符序列分割字符串,而不是按单个字符分割。我有这个:

String m=“Alcides&&ola&&Alcides”;
String[]split=m.split(&|&”);
系统输出打印项次(拆分[0]+拆分[1]+拆分[2]);
我的目标是在
split[0]->Alcides
split[1]->ola
split[2]->Alcides

但是,
System.out.println
的结果是:

Alcides|ola|
需要一个正则表达式。这意味着您必须退出
|
(这是一个)

需要一个正则表达式。这意味着您必须退出
|
(这是一个)


|
应转义,因为它用作正则表达式或在正则表达式中使用:

String m=“Alcides&&ola&&Alcides”;
String[]split=m.split(&\\\ |&”);
System.out.printf(“%s%s%s%n”,拆分[0],拆分[1],拆分[2]);//Alcides或Alcides

|
应转义,因为它用作正则表达式或在正则表达式中使用:

String m=“Alcides&&ola&&Alcides”;
String[]split=m.split(&\\\ |&”);
System.out.printf(“%s%s%s%n”,拆分[0],拆分[1],拆分[2]);//Alcides或Alcides

split
接受表示正则表达式的字符串

如果您不知道某些字符或序列是否可以被视为正则表达式的特殊/元(例如在您的示例中,表示
运算符的
,或者表示所有空格的
\s
之类的内容),您可以使用
模式。quote(您的字符串)
生成只表示
字符串的正则表达式

因此,在您的情况下,您可以使用

String[] split = m.split(Pattern.quote("&|&"));

split
接受表示正则表达式的字符串

如果您不知道某些字符或序列是否可以被视为正则表达式的特殊/元(例如在您的示例中,表示
运算符的
,或者表示所有空格的
\s
之类的内容),您可以使用
模式。quote(您的字符串)
生成只表示
字符串的正则表达式

因此,在您的情况下,您可以使用

String[] split = m.split(Pattern.quote("&|&"));
方法将字符串正则表达式作为参数,其中字符被解释为布尔“或”。如果不想处理此问题,可以先使用以下序列:
&&
-例如,使用不太明显的内容,然后围绕这些分隔符拆分字符串:

String m=“Alcides&&ola&&Alcides”;
字符串[]split=m.replace(&|&,“\u2980”).split(“\u2980”);
System.out.println(拆分[0]+“”+拆分[1]+“”+拆分[2]);
//Alcides或Alcides

另请参见:

方法将字符串正则表达式作为参数,其中字符被解释为布尔“或”。如果不想处理此问题,可以先使用以下序列:
&&
-例如,使用不太明显的内容,然后围绕这些分隔符拆分字符串:

String m=“Alcides&&ola&&Alcides”;
字符串[]split=m.replace(&|&,“\u2980”).split(“\u2980”);
System.out.println(拆分[0]+“”+拆分[1]+“”+拆分[2]);
//Alcides或Alcides

另见: