官术网_书友最值得收藏!

2.3 字符串的分割

問題

你想根據一個字段分隔符將一個字符串分成幾個部分,比如從逗號分隔值(CSV)文件或者管道分隔文件中得到特定的字符串。

解決方案

使用String對象上一個可用的split方法:

split方法返回一個字符串數組,可以將其當作一個普通的數組:

討論

可以使用簡單字符作為分隔符來分隔字符串,就像用逗號作為分隔符CSV文件一樣:

使用這種方法,最好對每個字符串進行trim。在返回數組之前,使用map方法對每個字符串調用trim:

也可以使用正則表達式來分隔一個字符串,下面這個例子告訴我們如何根據空白字符來分隔字符串:

不是所有CSV文件都一樣

注意,一些聲稱自己是CSV文件的文件實際上可能在其字段中包含逗號,它們通常會使用單引號或者雙引號括起來,而其他文件可能在其字段中包含換行符。處理這類文件的算法將比所示方法更復雜。更多信息見維基百科關于CSV文件的條目(https://oreil.ly/Feugs)。

關于split方法

split方法有多個重載版本,有些來自Java的String類,有些來自Scala的StringOps類。例如,如果用Char而不是String作為參數來調用split,使用的就是StringOps的split:

主站蜘蛛池模板: 彰武县| 隆回县| 繁昌县| 老河口市| 天津市| 平远县| 乌恰县| 吉林市| 建宁县| 大冶市| 西乡县| 张家川| 常熟市| 浦江县| 通榆县| 铜山县| 沁源县| 孟连| 美姑县| 海南省| 巩义市| 萨嘎县| 常德市| 汉沽区| 邹城市| 靖州| 麻江县| 南陵县| 柞水县| 天等县| 原平市| 精河县| 沙洋县| 榆林市| 新巴尔虎左旗| 崇礼县| 昌乐县| 双柏县| 丰原市| 庆元县| 红原县|