天天看點

軟體構造lab1——string.split的用法

軟體構造lab1的判斷矩陣是否為Magic Squares時需要知道檔案中矩陣的列數,這就需要使用String類的split方法。

首先檢視Java API文檔:

軟體構造lab1——string.split的用法
軟體構造lab1——string.split的用法

也就是說可以将給定的正規表達式通過分隔符分割為幾個字元串。那麼在實驗中,我們的分隔符就是"\t",通過将每行的正規表達式分割成一個字元串數組,數組中的元素個數就是矩陣的列數。具體的用法如下:

split用法

軟體構造lab1——string.split的用法

split的參數——regex

①如果表達式不比對輸入的任何内容,傳回的數組隻具有一個元素,即此字元串。(尤其注意空字元串這種情況,他也是一個字元串)

②可以比對的情況下,每一個字元串都由另一個比對給定表達式的子字元串終止,或者由此字元串末尾終止(數組中的字元串按照他們在此字元串出現的順序排列)

split的參數——limit

第二個參數用于控制模式比對使用的次數(limit預設為0)

①limit>0:模式比對将被最多應用n-1次,數組的長度将不會大于n,數組的最後一項将包含所有超出最後比對的定界符的輸入。

②limit<0:模式比對将應用盡可能多的次數,而且數組的長度是任何長度。

③limit=0:模式比對将被應用盡可能多的次數,數組可以是任何長度,并且結尾空字元串将被丢棄。

split用法舉例

String str=",aa,bb,,,ccc,dd,ee,";
String []s=str.split(",",2);
System.out.println(s.length);//2,因為limit=2,是以總長度最多為2,最多隻能
分割一次,是以分割後的長度為2

String str=",aa,bb,,,ccc,dd,ee,";
String []s=str.split(",",0);
System.out.println(s.length);//8,因為limit=0,是以可以盡可能的分割,是以頭部的逗号不會被忽略,而尾部的逗号會被忽略,是以分割後的字元串
分别為 : "","aa","bb","","","ccc","dd","ee",

String str=",aa,bb,,,ccc,dd,ee,";
String []s=str.split(",",-1);
System.out.println(s.length);//9,因為limit=0,是以可以盡可能的分割,而且頭部和
尾部的逗号都不會被忽略,分割後的字元串
分别為 : "","aa","bb","","","ccc","dd","ee","",
``