从String Scala的末尾删除字符

时间:2009-11-30 21:23:12

标签: string scala

从Scala中String的末尾删除最后一个字符的最简单方法是什么?

我发现Rubys String类有一些非常有用的方法,比如 chop 。我会在Scala中使用“oddoneoutz”.headOption,但它是折旧的。我不想陷入过于复杂的情况:

string.slice(0, string.length - 1)

请有人告诉我,有一个很好的简单方法,比如剁这种常见的东西。

6 个答案:

答案 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库并将其包含在项目中,直到找到合适的,更通用的替代方法?

嘿,看,这是公地。

Apache Commons 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
}