如何在Scala中从字符串的开头和结尾去除字符(不一定是空格,即空格)?
我正在寻找的Python类似物是lstrip
和rstrip
。
这是所需的功能:
ltrim("{blah blah}", "{") should equal("blah blah}")
ltrim("blah blah", "{") should equal("blah blah") // no exception
rtrim("blah blah}", "}") should equal("blah blah")
答案 0 :(得分:2)
如果要从String
的开头删除特定字符,可以使用dropWhile
:
"{{blah blah}".dropWhile(_ == '{')
// "blah blah}"
这会从String
的左边删除符合给定谓词的所有字符,在这种情况下,该谓词等于要删除的字符。
为了从右侧删除字符,由于标准库中还没有dropWhileRight
等效项,因此一种方法可以包括两次反向:
"{{blah blah}".reverse.dropWhile(_ == '}').reverse
// {{blah blah
或更高效:
"{{blah blah}}".dropRight("{{blah blah}}".reverse.segmentLength(_ == '}'))
// {{blah blah
"{{blah blah}}".stripSuffix("{{blah blah}}".reverse.takeWhile(_ == '}'))
// {{blah blah
答案 1 :(得分:1)
使用正则表达式函数
scala> "{blah blah}".replaceAll("""^[{]+""","")
res35: String = blah blah}
scala> "{{blah blah}".replaceAll("""^[{]+""","")
res36: String = blah blah}
scala> "blah blah}".replaceAll("""^[{]+""","")
res37: String = blah blah}
scala> "blah blah}".replaceAll("""[}]+$""","")
res38: String = blah blah
scala>
答案 2 :(得分:0)