Java中的Split之坑

String有個方法split是用來拆分字符串的,下面開始討論著字符串有哪些坑。下面正對Java做幾個實驗,采用工具jshell

命令 輸出結果
jshell> "a,b,c".split(",") $1 ==> String[3] { "a", "b", "c" }
jshell> "a,b,".split(",") $2 ==> String[2] { "a", "b" }
jshell> "a,,c".split(",") $3 ==> String[3] { "a", "", "c" }
jshell> ",b,c".split(",") $4 ==> String[3] { "", "b", "c" }
jshell> ",b,".split(",") $5 ==> String[2] { "", "b" }
",,a,,b,,".split(",") $6 ==> String[5] { "", "", "a", "", "b" }
jshell截圖

從上面的實驗中,我們先假設逗號之間或者與開頭或結尾之間拆分出來的是空字符串垦缅,我們會發(fā)現一個規(guī)律,拆分結果末尾的所有空字符串都被砍掉驹碍,而開頭的和中間的不會被砍掉壁涎。為了證明我們的結論是否正確,我們看看源碼是怎么寫的志秃。

// Construct result
int resultSize = matchList.size();
if (limit == 0)
    while (resultSize > 0 && matchList.get(resultSize-1).equals(""))
        resultSize--;
String[] result = new String[resultSize];
return matchList.subList(0, resultSize).toArray(result);

從while子句中可以看出來怔球,原來砍掉后面的空格是特意要這么做的啊,倒著往前刪洽损,連續(xù)的空串都去掉庞溜。不知道為什么要這樣做,但這很容易給缺乏經驗的人造成坑!那么從JavaScript里看看是不是也這樣呢流码,我們再做做實驗又官。我們采用jrunscript工具

命令 輸出結果
nashorn> ",,b,,b,,".split(",") [object Array]
",,b,,c,,".split(",").length 7
nashorn> ",,b,,c,,".split(",").toString() ,,b,,c,,
jrunscript截圖

看來js和java還是有很大不同的。js并不會砍掉末尾的空串漫试,而是有多少算多少六敬,都裝到數組里。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末驾荣,一起剝皮案震驚了整個濱河市外构,隨后出現的幾起案子,更是在濱河造成了極大的恐慌播掷,老刑警劉巖审编,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異歧匈,居然都是意外死亡垒酬,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門件炉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勘究,“玉大人,你說我怎么就攤上這事斟冕】诟猓” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵磕蛇,是天一觀的道長景描。 經常有香客問我,道長孤里,這世上最難降的妖魔是什么伏伯? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮捌袜,結果婚禮上,老公的妹妹穿的比我還像新娘炸枣。我一直安慰自己虏等,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布适肠。 她就那樣靜靜地躺著霍衫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侯养。 梳的紋絲不亂的頭發(fā)上敦跌,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音,去河邊找鬼柠傍。 笑死麸俘,一個胖子當著我的面吹牛,可吹牛的內容都是我干的惧笛。 我是一名探鬼主播从媚,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼患整!你這毒婦竟也來了拜效?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤各谚,失蹤者是張志新(化名)和其女友劉穎紧憾,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體昌渤,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡赴穗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了愈涩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片望抽。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖履婉,靈堂內的尸體忽然破棺而出煤篙,到底是詐尸還是另有隱情,我是刑警寧澤毁腿,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布辑奈,位于F島的核電站,受9級特大地震影響已烤,放射性物質發(fā)生泄漏鸠窗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一胯究、第九天 我趴在偏房一處隱蔽的房頂上張望稍计。 院中可真熱鬧,春花似錦裕循、人聲如沸臣嚣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硅则。三九已至,卻和暖如春株婴,著一層夾襖步出監(jiān)牢的瞬間怎虫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留大审,地道東北人蘸际。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像饥努,于是被迫代替她去往敵國和親捡鱼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法酷愧,類相關的語法驾诈,內部類的語法,繼承相關的語法溶浴,異常的語法乍迄,線程的語...
    子非魚_t_閱讀 31,587評論 18 399
  • 轉自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帥199207閱讀 8,500評論 3 93
  • 釋卷讀書會的性質: 釋卷讀書會是以讀書為目的,由文史愛好者形成的團體士败,其動因皆為自愿闯两,加入和離開并不強制。 釋卷讀...
    李古閱讀 248評論 0 0