上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
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: