1. 程式人生 > >Java—split函式

Java—split函式

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][\]^_`{|}~