在使用split和pipeline时遇到了问题。但使用其他字符时效果很好。出了什么问题,请帮帮我。
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
管道被视为regex特殊字符。只要通过\|
逃离它,你就会很好。从String.split…上的javadoc
将此字符串拆分为给定正则表达式的匹配项。
如果您希望安全,请始终将您的文本传递给Pattern.quote(stringToSplitOn)
;