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
另见: