2017-02-09 29 views
2

如何獲得該字符串的字符串:如何獲得scala的子串?

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

我想獲得S3N://單獨桶/測試/文件。我試過拆分:

"s3n://bucket/test/files/*/*".split("/*/*")但這給了我每個字符的字符串數組。

回答

6

分割參數是一個正則表達式,/*/*匹配字符串中的所有字符。你需要逃避*

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

在這種情況下split另一種可能是:

"s3n://bucket/test/files/*/*".stripSuffix("/*/*") 
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