Scala中的split函数使用

Scala 中的 split 函数主要有下面两种参数形式:

def split(arg0: String): Array[String]

def split(arg0: String, arg1: Int): Array[String]

其实它的第一种方式,可以认为将第二种方式的 arg1 设置为 0 形成的结果

arg0 代表的是一个正则表达式,代表根据 arg0 来分割

arg1 是对分割后的字串的个数做限定。arg1 的取值大体来说有三种方式。小于 0、等于 0、大于 0

一、当 arg1 大于 0 的时候

它表示原字符串被 arg0 分割后的子字串个数,也就是说原字符串最多被分割为 arg1 个字串

scala> "a-b-c".split("-", 2)
res0: Array[String] = Array(a, b-c)

scala> "a-b-c".split("-", 4)
res1: Array[String] = Array(a, b, c)

scala> "-a-b-c--".split("-", 3)
res2: Array[String] = Array("", a, b-c--)

scala> "-a-b-c--".split("-", 6)
res3: Array[String] = Array("", a, b, c, "", "")

scala> "-a-b-c--".split("-", 5)
res4: Array[String] = Array("", a, b, c, -)

scala> "-a-b-c--".split("-", 8)
res5: Array[String] = Array("", a, b, c, "", "")

二、当 arg1 等于 0 的时候

它表示原字符串被 arg0 分割后的子字串个数没有限制,也就是说原字符串能被分割为多少个,就被分割为多少个。

注意:如果被分割后的子字符串,后面包含空字符串,则默认去掉。前面的不受影响

scala> "a-b-c".split("-", 0)
res6: Array[String] = Array(a, b, c)

scala> "a-b-c---".split("-", 0)
res7: Array[String] = Array(a, b, c)

scala> "-a--b--c---".split("-", 0)
res8: Array[String] = Array("", a, "", b, "", c)

scala> "".split("-", 0)
res9: Array[String] = Array("")

三、当 arg1 小于 0 的时候

它表示原字符串被 arg0 分割后的子字串个数没有限制,也就是说原字符串能被分割为多少个,就被分割为多少个。

注意:如果被分割后的子字符串,无论前面、后面是否包含空字符串,均不受影响

scala> "a-b-c".split("-", -1)
res10: Array[String] = Array(a, b, c)

scala> "-a--b--c-".split("-", -1)
res11: Array[String] = Array("", a, "", b, "", c, "")

参考地址

四、当 arg0. 时,需要转义

scala> "a.b.c".split("\\.", -1)
res12: Array[String] = Array(a, b, c)

下面是没有转义的情况:

scala> "a.b.c".split(".", -1)
res13: Array[String] = Array("", "", "", "", "", "")

scala> "a.b.c".split("\.", -1)
<console>:1: error: invalid escape character
"a.b.c".split("\.", -1)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值