1. 程式人生 > >。。。Java String.split()函數的用法分析。。。

。。。Java String.split()函數的用法分析。。。

lin web ngs main rdquo http mona posit for

在java.lang包中有String.split()方法的原型是:public String[] split(String regex, int limit)

split函數是用於使用特定的切割符(regex)來分隔字符串成一個字符串數組,函數返回是一個數組。在其中每個出現regex的位置都要進行分解。
需要註意是有以下幾點:
(1)regex是可選項。字符串或正則表達式對象,它標識了分隔字符串時使用的是一個還是多個字符。如果忽略該選項,返回包含整個字符串的單一元素數組。
(2)limit也是可選項。該值用來限制返回數組中的元素個數。
(3)要註意轉義字符:“.”和“|”都是轉義字符,必須得加"\\"。同理:*和+也是如此的。


如果用“.”作為分隔的話,必須是如下寫法:
String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");
如果用“|”作為分隔的話,必須是如下寫法:
String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|");
(4)如果在一個字符串中有多個分隔符,可以用“|”作為連字符,比如:“acountId=? and act_id =? or extra=?”,把三個都分隔出來,可以用
String.split("and|or");

(5)split函數結果與regex密切相關,常見的幾種情況如下所示:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 publicclassSplitTest{ publicstaticvoidmain(String[]args){ Stringstr1="a-b"; Stringstr2="a-b-"; String
str3="-a-b";
Stringstr4="-a-b-"; Stringstr5="a"; Stringstr6="-"; Stringstr7="--"; Stringstr8=""; split(str1); split(str2); split(str3); split(str4); split(str5); split(str6); split(str7); split(str8); } publicstaticvoidsplit(Stringdemo){ String[]array=demo.split("-"); intlen=array.length; System.out.print("\""+demo+"\" 分割後的長度為:"+len); if(len>=0) { System.out.print(",分割後的結果為:"); for(inti=0;i<len;i++) { System.out.print(" \""+array[i]+"\""); } } System.out.println(); } }

運行結果:

"a-b" 分割後的長度為:2,分割後的結果為: "a" "b""a-b-" 分割後的長度為:2,分割後的結果為: "a" "b"
"-a-b" 分割後的長度為:3,分割後的結果為: "" "a" "b"
"-a-b-" 分割後的長度為:3,分割後的結果為: "" "a" "b"
"a" 分割後的長度為:1,分割後的結果為: "a"
"-" 分割後的長度為:0,分割後的結果為:
"--" 分割後的長度為:0,分割後的結果為:
"" 分割後的長度為:1,分割後的結果為: ""

結論:


當字符串只包含分隔符時,返回數組沒有元素;
當字符串不包含分隔符時,返回數組只包含一個元素(該字符串本身);
字符串最尾部出現的分隔符可以看成不存在,不影響字符串的分隔;
字符串最前端出現的分隔符將分隔出一個空字符串以及剩下的部分的正常分隔; 轉載:http://swiftlet.net/archives/709

。。。Java String.split()函數的用法分析。。。