split 方法分割字串中的問題

2021-07-22 23:17:22 字數 2039 閱讀 3499

使用split()方法可以是字串按指定的分割字元或字串對內容進行分割,並將分割後的結果存放在字串陣列中。split()方法提供了以下兩種過載形式:

(1)split(string sign)

該方法可根據給定的分割符對字串進行拆分。

語法如下:

str.split(string sign)
其中,sign未分割字串的分隔符,也可以使用正規表示式。

(2)split(string sign , int limit)

該方法可以根據給定的分割符對字串進行拆分,並限定拆分的次數。

語法如下:

str.split(string sign , int limit)
sign : 分割字串的分隔符,也可以使用正規表示式。

limit:限制的分割次數。(等於分割後字元陣列的元素個數)

在使用過程中,發現如果字串中有「.」,並且想用「.」來分隔字串,出現了如下問題:

**1:

system.out

.println("***********");

string s13 = new string("abc.def.ghi.gkl");

string s14 = s13.split(".",2);

for (int i = 0

; i < s14.length; i++)

system.out

.println("-----------");

執行結果:

結果顯示分解後產生了2個字串:「 」和「bc.def.ghi.gkl」

如果**改為

**2:

system.out

.println("***********");

string s13 = new string("abc.def.ghi.gkl");

string s14 = s13.split(".");

for (int i = 0

; i < s14.length; i++)

system.out

.println("-----------");

結果:

進一步,將**改為

**3:

system.out

.println("***********");

string s13 = new string("abc/def/ghi/gkl");

string s14 = s13.split("./");

for (int i = 0

; i < s14.length; i++)

system.out

.println("-----------");

結果:

經驗證,這時因為「.」在正規表示式中匹配除「\r\n」外的任何單個字元。

想要用「.」來分割字串的正確**:

system.out

.println("***********");

string s13 = new string("abc.def.ghi.gkl");

string s14 = s13.split("\\.");

for (int i = 0

; i < s14.length; i++)

system.out

.println("-----------");

結果:

正規表示式參考:

split分割字串

string tmp weekcode.split new char string yr tmp 0 string wk tmp 1 string tmp regex.split eachl,error regexoptions.ignorecase 用字串來分割 error 把 以 error 為...

字串分割split

知識講解 split 方法將字串分割為字串陣列,並返回此陣列。stringobject.split separator,limit 注意 如果把空字串 用作 separator,那麼 stringobject 中的每個字元之間都會被分割。我們將按照不同的方式來分割字串 使用指定符號分割字串,如下 v...

不用Split方法實現分割字串

今天在網上看見有人問這個問題,我動手寫了下。哈哈 這只是第一步實現,沒考慮優化,也沒想有沒有什麼隱藏的bug,不過初步執行是沒什麼問題了。分享一下吧。list strl new list string temp string str 12,13,14.15 foreach char c in str...