2

私のコード:

  result ="sub||hi";
  String[] results = result.split("||");

私が欲しい:

results [0]=sub
results [1]=hi

しかし、私は得る:

result[0]=s
result[1]=u
result[2]=b
result[3]=h
result[4]=s
4

4 に答える 4

12

使用する

String[] results = result.split("\\|");
于 2013-07-24T13:57:56.893 に答える
5

public String[] split(String regex)はregexを取ることに注意してください。

特殊な char をエスケープする必要があります|
正規表現のエスケープは によって行われ\ますが、Java では の\ように記述され\\ます。

言及するのに適した代替ソリューション:

「指定された文字列のリテラル パターン文字列を返すpublic static String quote(String s)を使用できます。

String[] result = result.split(Pattern.quote("|"));

これで、特別な意味を持つ正規表現としてではなく、文字|として扱われます。 ||

于 2013-07-24T14:01:08.580 に答える
1

はメタ文字なので|、特殊文字をエスケープすると動作します。

String[] results = result.split("\\|");

関連する Oracle ドキュメント

于 2013-07-24T14:01:16.347 に答える