java.lang パッケージには、配列を返す String.split() メソッドがあります。
参考のためにいくつかをまとめておきます。
1.その場合、正しく区切るためには String.split("\.") のように記述する必要があります。 String.split(".") は使用できません;
2. " の場合|" を区切りとして使用します。正しく区切るためには String.split("\|") のように記述します。 String.split("|") は使用できません;
"。 " と "|" は両方ともエスケープ文字であり、"\" を追加する必要があります。
3. 文字列に複数の区切り文字がある場合は、"|" をハイフンとして使用できます (例: "acount=、uu =?) ? または n=?" それらを区切るには、String.split("and|or"); を使用できます。
String.split メソッドを使用して文字列を区切る場合、区切り文字に特殊文字が使用されていると、私たちが期待していた結果。
jdk doc の説明を見てみましょう
public String[] split(String regex)
指定された正規表現の一致を中心にこの文字列を分割します
パラメータ regex は、単純な正規表現の一致パターンではありません。 String では、一部の特殊文字に対して予期しない結果が生じる可能性があります。たとえば、次のコードをテストして文字列を区切るのに縦棒 | を使用すると、期待した結果が得られません
Java コード
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("\|");正しい結果
for (int i = 0; i System.out.println("--"+aa[i]); } 文字列を区切るために縦方向の * を使用すると、プラス記号 + を使用した場合と同様に、java.util.regex.PatternSyntaxException 例外がスローされます。 Java コード String[] aa = "aaa*bbb*ccc".split("*"); //String[] aa = "aaa|bbb|ccc".split(" \*"); この方法でのみ、正しい結果を得ることができます。 * は有効なパターン マッチング ルール式ではないため、「\*」「\+」でエスケープすると正しい結果が得られます。 文字列を区切る際に「|」を実行することは可能ですが、「\|」をエスケープすると正しい結果が得られます。 また、文字列内で "" 文字を使用したい場合は、それをエスケープする必要があります。 まず、文字列 "aaaabbbb" を表現するには、"aaaa\bbbb" を使用する必要があります。分離するには、これを使用して正しい結果を取得する必要があります。 String[] aa = "aaa\bbb\bccc".split("\\");