国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java split 分隔空值無法得到的解決方式

瀏覽:23日期:2022-08-22 14:10:49

應用場景

String s1='A,B,'

將s1 以逗號分隔,轉換成集合 正常的轉換結果如下

[A,B]

逗號后的空不再進行分隔,若想逗號后的空即轉換為三個元素的集合

List<String> list = Arrays.asList(s1.split(',',-1));

只需要在跟個條件后,添加-1 即可 ,轉換的結果如下

[A, B, ]

補充知識:Java Sting類關于split處理空串以及截取最大數

java的String類中有個split方法,這個是我們經常使用到的。

split一共有兩個方法,

①.public String[] split(String regex,int limit)

②. public String[] split(String regex )

先說第一個,有兩個參數,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 - 如果正則表達式的語法無效

以上這篇Java split 分隔空值無法得到的解決方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 一级女性全黄久久生活片免费 | 久久高清免费 | 欧美日韩在线播放一区二区三区 | 深夜国产成人福利在线观看女同 | 亚洲毛片在线 | 乱人伦中文视频在线 | 日韩专区亚洲精品欧美专区 | 写真片福利视频在线播放 | 国产成人毛片亚洲精品不卡 | 久久精品片| 成 人 黄 色 免费播放 | 色吧久久| 美女操男人 | 特黄大片aaaaa毛片 | 欧美成人h精品网站 | 中文字幕1区| 久久久久视频精品网 | 欧美视频一区 | 精品久久免费视频 | 国产成人久久一区二区三区 | 国产亚洲综合精品一区二区三区 | 好看欧美视频高清va | 美女福利视频国产片 | 欧美成人3d动漫专区 | 国产精品视频久久久久 | 免费观看成人毛片 | 中国一级做a爰片久久毛片 中日韩欧美一级毛片 | 国产在亚洲线视频观看 | 日韩精品视频美在线精品视频 | 成人免费视频在线看 | 国产成人在线免费 | 91九色视频无限观看免费 | 日本一级全黄大片 | 超级碰碰碰视频视频在线视频 | 综合亚洲欧美日韩一区二区 | 欧美人成片免费看视频不卡 | 91精品国产薄丝高跟在线看 | xxxxx性欧美 xxxx肥婆性bbbb欧美 | 日本三级香港三级网站 | 色综合久久久高清综合久久久 | 国产一区二区三区毛片 |