5

二重パイプ (||) を区切り文字として文字列を分割しようとしています。文字列は次のようになります。

String str ="user@email1.com||user@email2.com||user@email3.com";

StringTokeniser を使用して分割することができます。javadoc によると、このクラスの使用は推奨されておらず、代わりに String.split をオプションとして参照してください。

StringTokenizer token = new StringTokenizer(str, "||");

上記のコードは正常に動作しますが、string.split 関数の下で期待される結果が得られない理由を理解できません..

String[] strArry = str.split("\\||");

どこが間違っているのでしょうか..?

4

5 に答える 5

16

String.split()正規表現を使用します。区切りとして使用する文字列をエスケープする必要があります。

パターンには、これを行うメソッド、つまり がありますPattern.quote(String s)

String[] split = str.split(Pattern.quote("||"));
于 2013-03-20T13:17:24.657 に答える
15

|あなたはこのように一人一人を脱出する必要がありますstr.split("\\|\\|")

于 2013-03-20T13:14:21.430 に答える
4

これを試してください:

String[] strArry = str.split("\\|\\|");
于 2013-03-20T13:16:06.397 に答える
0

これも試すことができます...

String[] splits = str.split("[\\|]+");

パイプは正規表現で特別な意味を持ち、String.split() メソッドは正規表現の引数を想定しているため、パイプをエスケープする必要があることに注意してください。

于 2013-03-20T13:26:20.553 に答える