- Scala編程實戰(原書第2版)
- (美)阿爾文·亞歷山大
- 415字
- 2024-04-15 12:05:15
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:
