2

パイプラインでsplitを使用しているときに問題が発生しますが、他の文字ではうまく機能します。何が間違っているのかを教えてください。

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 に答える