我在这里有这个字符串:M412 Rex | -HEADSHOT-
。我想在|
上拆分它以获得名字,但是我的代码无法正常工作。
System.out.println("weaponPart = " + weaponPart);
String[] weaponPartParts = weaponPart.split(" | ");
for (String s : weaponPartParts) {
System.out.println("s = " + s);
}
System.out.println();
打印输出:
weaponPart = M412 Rex | -HEADSHOT-
s = M412
s = Rex
s = |
s = -HEADSHOT-
我假设它与正则表达式匹配有关,但实际上是什么情况?
最佳答案
您必须对正则表达式中特殊字符|
进行两次转义:\\|
。 (它的意思是“或”)
换句话说,您的实际模式意味着“找到空间或空间时分裂”。
因此,好的做法是:
String[] weaponPartParts = weaponPart.split(" \\| ");
顺带一提,这些特殊字符
\ | ( ) [ { ^ $ * + ? .
是“脏十二打”。关于java - 正则表达式分割字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20023110/