如何在scala中获取子字符串?

时间:2017-02-09 00:53:48

标签: string scala substring

如何获取字符串的子字符串:

 "s3n://bucket/test/files/*/*"

我想单独获取s3n:// bucket / test / files。我尝试了拆分:

"s3n://bucket/test/files/*/*".split("/*/*")但是这给了我每个字符的字符串数组。

2 个答案:

答案 0 :(得分:6)

split的参数是正则表达式,/*/*匹配字符串中的所有字符。您需要转义*

"s3n://bucket/test/files/*/*".split("/\\*/\\*")

在这种情况下,split的替代方案可能是:

"s3n://bucket/test/files/*/*".stripSuffix("/*/*")

答案 1 :(得分:3)

一些不使用正则表达式的选项。

使用takeWhile给出“s3n:// bucket / test / files /”,其中包含最后一个斜杠。

scala> s.takeWhile(_ != '*')
res11: String = s3n://bucket/test/files/

使用indexOf查找第一个“*”并减少一个字符,然后给出您指定的输出。

scala> s.slice(0,s.indexOf("*") - 1)
res14: String = s3n://bucket/test/files