从Scala中String的末尾删除最后一个字符的最简单方法是什么?
我发现Rubys String类有一些非常有用的方法,比如 chop 。我会在Scala中使用“oddoneoutz”.headOption,但它是折旧的。我不想陷入过于复杂的情况:
string.slice(0, string.length - 1)
请有人告诉我,有一个很好的简单方法,比如剁这种常见的东西。
答案 0 :(得分:125)
如何使用dropRight,它适用于2.8: -
"abc!".dropRight(1)
产生“abc”
答案 1 :(得分:12)
string.init // padding for the minimum 15 characters
答案 2 :(得分:8)
val str = "Hello world!"
str take (str.length - 1) mkString
答案 3 :(得分:5)
string.reverse.substring(1).reverse
那基本上是砍,对吧?如果您渴望使用chop方法,为什么不编写自己的StringUtils
库并将其包含在项目中,直到找到合适的,更通用的替代方法?
答案 4 :(得分:2)
如果您想要最有效的解决方案而不仅仅使用:
str.substring(0, str.length - 1)
答案 5 :(得分:0)
如果您只想删除最后一个字符,请使用 .dropRight(1)
。或者,如果您想删除特定的结束字符,您可能需要使用匹配模式
val s: String = "hello!"
val sClean: String = s.takeRight(1) match {
case "!" => s.dropRight(1)
case _ => s
}