String.split()の使い方


javaでlangパッケージにStringがあります.split()メソッド、戻りは配列です
私は応用の中でいくつか使って、みんなにまとめて、みんなの参考に供します:
1、「.」を使うと区切りとしては、String.split("\\."),このようにしてやっと正確に区切ることができて、Stringを使うことができません.split(".");
2、区切りとして「|」を用いる場合は、String.split("\|")は、正しく区切ることができ、Stringは使用できません.split("|");
“.”「|」もエスケープ文字なので、「\」を付けなければなりません.
3、1つの文字列に複数の区切り文字がある場合は、「acount=?and uu=?or n=?」などのハイフンとして「|」を使用します.3つを区切ってStringを使えますsplit("and|or");
Stringを使用します.splitメソッドで文字列を区切る場合、区切り記号に特殊な文字が使用されると、予想される結果が得られない可能性があります.
jdk docの説明を見てみましょう
 
 
 
 
 
 
 
 
 
 
 
public String[] split(String regex)

 

 Splits this string around matches of the given regular expression. 

 


パラメータregexは単純なStringではなくregular-expressionのマッチングモードであり、次のコードをテストするなど、特殊な文字に対して予想できない結果が出る可能性があります.
文字列を縦線|で区切ると、予想される結果が得られません.
    String[] aa = "aaa|bbb|ccc".split("|");    //String[] aa = "aaa|bbb|ccc".split("\\|"); これでやっと正しい結果が得られる
    for (int i = 0 ; i 縦*で区切る文字列で実行するとjavaが放出されます.util.regex.PatternSyntaxException異常は、プラス記号+でも同様です.
    String[] aa = "aaa*bbb*ccc".split("*");    //String[] aa = "aaa|bbb|ccc".split("\\*"); これでやっと正しい結果が得られる
    for (int i = 0 ; i 明らかに、+*は有効なモードマッチング規則式ではなく、「\*」「\+」で変換すると正しい結果が得られます.
"|"は列を区切るときに実行できますが、予期した目的ではありません."\|"はエスケープ後に正しい結果を得ることができます.
また、文字列に""を使用するには、エスケープも必要である.まず「aaaabbb」という列を表すには「aaaa\bbb」を使うべきで、区切るにはこのようにして正しい結果を得るべきです.
String[] aa = "aaa\\bbb\\bccc".split("\\\\");