Java Sting類關於split處理空串以及擷取最大數
split一共有兩個方法,
①.public String[] split(String regex,int limit)
先說第一個,有兩個引數,api上的例子:
public String[] split(String regex,int limit)
根據匹配給定的正規表示式來拆分此字串。
此方法返回的陣列包含此字串的每個子字串,這些子字串由另一個匹配給定的表示式的子字串終止或由字串結束來終止。
陣列中的子字串按它們在此字串中的順序排列。如果表示式不匹配輸入的任何部分,則結果陣列只具有一個元素,即此字串。
limit 引數控制模式應用的次數,因此影響結果陣列的長度。如果該限制 n 大於 0,則模式將被最多應用 n - 1 次,陣列的長度將不會大於 n,而且陣列的最後項將包含超出最後匹配的定界符的所有輸入。
如果 n 為非正,則模式將被應用盡可能多的次數,而且陣列可以是任意長度。如果 n 為零,則模式將被應用盡可能多的次數,陣列可有任何長度,並且結尾空字串將被丟棄。
例如,字串 "boo:and:foo" 使用這些引數可生成下列結果:
Regex Limit 結果
: 2 { "boo", "and:foo" }
: 5 { "boo", "and", "foo" }
: -2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
o -2 { "b", "", ":and:f", "", "" }
o 0 { "b", "", ":and:f" }這種形式的方法呼叫 str.split(regex, n) 產生與以下表示式完全相同的結果:
Pattern.compile(regex).split(str, n)
引數:
regex - 定界正規表示式
limit - 結果閾值,如上所述
返回:
字串陣列,根據給定正規表示式的匹配來拆分此字串,從而生成此陣列
丟擲:
PatternSyntaxException - 如果正規表示式的語法無效
其實上面說的已經很詳細了,說到底就是比常用的多了一個limit引數。但是引數怎麼用。
1.當引數為整數的時候,只需要擷取前幾個,需要幾個擷取幾個,這個不用多說。
String line = "aa,bb,cc,dd,,,,";System.out.println(line.split(",",6).length);
輸出結果為6,limit引數指定幾個,輸出幾個,最多為8個
2.當引數為零的時候,和split()一樣,截圖儘可能多的字串(其實不是最多的)。
String line = "aa,bb,cc,dd,,,,";System.out.println(line.split(",",0).length);
輸出結果為4
3.當引數為負的時候,即使後面有空的串,也會輸出到最大
String line = "aa,bb,cc,dd,,,,";System.out.println(line.split(",",-1).length);
輸出結果為8
可能大家都看出來了,以逗號切割的一般都是CSV格式的檔案,當遇到讀取每一行記錄的時候,不加引數,就會遇到這種情況,讀取不完整,然後CSV資料格式驗證的時候,驗證資料不合法。
String line = "aa,bb,cc,dd,,,,";
String mi[] = (line).split(sp);
if (mi.length != 8)return;
實際結果 mi.length = 4,所以通不過驗證直接非法資料
②其實就是當limit引數為0的時候獲得的結果,將api的介紹放上來,就不多說了。
public String[] split(String regex)
根據給定的正規表示式的匹配來拆分此字串。
該方法的作用就像是使用給定的表示式和限制引數 0 來呼叫兩引數 split 方法。因此,結果陣列中不包括結尾空字串。
例如,字串 "boo:and:foo" 產生帶有下面這些表示式的結果:
Regex 結果
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }
引數:
regex - 定界正規表示式
返回:
字串陣列,根據給定正規表示式的匹配來拆分此字串,從而生成此陣列。
丟擲:
PatternSyntaxException - 如果正規表示式的語法無效
相關文章
- 關於一類資料處理
- Golang 字串分割,替換和擷取 strings.SplitGolang字串
- 數學處理類
- 關於OT分類的一些處理
- Java--- 關於null的處理若干方法JavaNull
- split用法與影像預處理
- 聊聊介面最大併發處理數
- Java 圖片裁剪,擷取Java
- Java 中關於 null 物件的容錯處理JavaNull物件
- java 圖片水印處理類Java
- java 檔案處理 工具類Java
- 工具類,關於手工讀取 properties檔案引數
- Java String類,字串常量池,建立方法,字串的獲取,擷取,轉換,分割。Java字串
- python 資料處理(字串擷取、()\[]\{}資料型別、{}字典資料取值)Python字串資料型別
- 關於GCD多工處理GC
- 關於php rsa加密處理PHP加密
- 不停機處理oracle超過最大processes數故障Oracle
- java讀取大檔案並處理Java
- 關於 Date 函式獲取各類時間/日期/天數函式
- java新特性處理時間工具類Java
- 字串擷取字串
- js擷取JS
- 關於Python中的日期處理Python
- 數學建模 資料處理模型之變數相關性類(灰色相關聯、相關性分析)模型變數
- windwos 批處理指令碼bat 擷取某一列 賦值給變數,執行變數(重啟weblogic服務)指令碼BAT賦值變數Web
- 數字影像處理-取樣量化(Matlab)Matlab
- 關於 SAP Spartacus scss 處理邏輯裡的變數 $useLatestStylesCSS變數
- java學習:虛擬機器對於方法中引數為類型別的如何處理的Java虛擬機型別
- JS字串擷取函式slice(),substring(),substr()的用法 區別split()後期遇到補充JS字串函式
- MySQL 字串擷取相關函式總結MySql字串函式
- mysql關於最大連線數、最大併發執行緒數的區別MySql執行緒
- 關於go的跨域處理 ginGo跨域
- 關於Android的幾種事件處理Android事件
- 關於linux病毒`kinsing` `kdevtmpfsi`的處理Linuxdev
- js 英文中文混擷取 相同個數JS
- 前端字型擷取前端
- 關於w10配置java jdk以及jre環境變數問題JavaJDK變數
- 數字影像處理相關練習