0

重複の可能性:
文字列を | で分割 Javaのセパレータ

私は次のことをするときのように少し混乱しています:

String example1 = "Hello|World";
String[] splitRes;

splitRes = example1.split("|");

分割文字列を取得できない
Hello インデックス 0
ワールド インデックス 1

でもやったら

 String example1 = "Hello:World";  
 String[] splitRes;

 splitRes = example1.split(":");  

その後、それは機能します..
なぜそれが起こっているのですか?

4

4 に答える 4

6

split は正規表現を使用します。正規表現の「または」演算子であるため、パイプをエスケープする必要があります。

example1.split("\\|");
于 2012-05-24T09:39:57.957 に答える
2

String.split()は引数として正規表現を期待し、正規表現|のメタ文字 "OR" です。\ でエスケープする必要があります (したがって、 になります\|)。Java 文字列では、\ は Java 文字列のエスケープ文字でもあるため、\\ と記述する必要があることに注意してください。

于 2012-05-24T09:40:57.037 に答える
1

| | は正規表現で使用されますが、正規表現.splitも使用するため、エスケープする必要があります。

String str = ""Hello:World"; ";
String[] temp;
String delimiter = "\\|";
SepString= str.split(delimiter);
  /* print test */
for(int i =0; i < SepString.length ; i++)
System.out.println(SepString[i]);
于 2012-05-24T09:44:32.547 に答える
0

Split は引数として正規表現を受け取ります。正規表現記号です。\Java 文字列でそのうちの 2 つを使用してエスケープする必要があります。\\

.split("\\|");
于 2012-05-24T09:40:39.413 に答える