如何获取字符串的子字符串:
"s3n://bucket/test/files/*/*"
我想单独获取s3n:// bucket / test / files。我尝试了拆分:
"s3n://bucket/test/files/*/*".split("/*/*")
但是这给了我每个字符的字符串数组。
答案 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