Shi*_*nsh 4 string split scala
以下是两种情况:
情况1:
scala> "".split('f')
res3: Array[String] = Array("")
Run Code Online (Sandbox Code Playgroud)
案例2:
scala> "f".split('f')
res5: Array[String] = Array()
Run Code Online (Sandbox Code Playgroud)
为什么它在这里表现不同!具体的解释会很棒!
在第一种情况下,您提供的字符串和分隔符与该字符串中的任何字符都不匹配.所以它只返回原始字符串.这可以用非空字符串示例来说明:
scala> "abcd".split('f')
res2: Array[String] = Array(abcd)
Run Code Online (Sandbox Code Playgroud)
但是,第二个字符串只包含分隔符.所以它匹配分隔符并拆分字符串.由于拆分不包含任何内容 - 它返回一个空数组.根据Java String文档:
如果表达式不匹配:
如果表达式与输入的任何部分都不匹配,那么结果数组只有一个元素,即该字符串.
如果表达式匹配:
因此,结尾的空字符串不包含在结果数组中.
资料来源:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String,%20int)