Java—split函式
阿新 • • 發佈:2018-11-06
Java中的 split 函式是用於按指定字元(串)或正則去分割某個字串,結果以字串陣列形式返回;
下面是到例題, 這道題目是想我們去掉字串s中多餘的空格和標點符號;
String s = "cat dog,desk push last, this is what. must be"; String[] ss = s.split("\\s*\\,\\s*|\\s*\\.\\s*|\\s+"); //填空位置 //String[] string = s.split("\\s*\\p{Punct}\\s*|\\p{Space}+"); //第二種 for(String k: string) System.out.println(k);
第一種是找出s中存在的標點符號;而第二種是直接用正則表示式;
以下是程式碼的結果:
cat dog desk push last this is what must be
java中提供了對正則表示式的支援,以下是一些正則表示式;
字元類 | |
[abc] | a、b 或 c(簡單類) |
[^abc] | 任何字元,除了 a、b 或 c(否定) |
[a-zA-Z] | a 到 z 或 A 到 Z,兩頭的字母包括在內(範圍) |
[a-d[m-p]] | a 到 d 或 m 到 p:[a-dm-p](並集) |
[a-z&&[def]] | d、e 或 f(交集) |
[a-z&&[^bc]] | a 到 z,除了 b 和 c:[ad-z](減去) |
[a-z&&[^m-p]] | a 到 z,而非 m 到 p:[a-lq-z](減去) |
預定義字元類 | |
\d |
數字:[0-9] |
\D | 非數字: [^0-9] |
\s | 空白字元:[ \t\n\x0B\f\r] |
\S | 非空白字元:[^\s] |
\w | 單詞字元:[a-zA-Z_0-9] |
\W | 非單詞字元:[^\w] |
POSIX 字元類(僅 US-ASCII) | |
\p{Lower} | 小寫字母字元:[a-z] |
\p{Upper} | 大寫字母字元:[A-Z] |
\p{ASCII} | 所有 ASCII:[\x00-\x7F] |
\p{Alpha} | 字母字元:[\p{Lower}\p{Upper}] |
\p{Digit} | 十進位制數字:[0-9] |
\p{Alnum} | 字母數字字元:[\p{Alpha}\p{Digit}] |
\p{Punct} | 標點符號:!"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~ |