2

与管道一起使用拆分时遇到问题。但与其他角色一起使用时效果很好。做错了什么请帮助我。

String s ="H|PONumber1|1|1";
String arr[] = s.split("|");
for(int i=0;i <arr.length;i++ )
  System.out.println("arr["+i+"] : "+arr[i]);

输出 :

arr[0] : 
arr[1] : H
arr[2] : |
arr[3] : P
arr[4] : O
arr[5] : N
arr[6] : u
arr[7] : m
arr[8] : b
arr[9] : e
arr[10] : r
arr[11] : 1
arr[12] : |
arr[13] : 1
arr[14] : |
arr[15] : 1
4

1 回答 1

6

管道被视为正则表达式特殊字符。只需通过它逃脱它\\|,你就会好起来的。从String.split 上的 javadoc ...

围绕给定正则表达式的匹配拆分此字符串。

如果您想安全起见,请始终将您的文本传递给Pattern.quote(stringToSplitOn);

于 2013-02-06T04:17:23.537 回答