Reputation: 10629
What is the simplest method to remove the last character from the end of a String in Scala?
I find Rubys String class has some very useful methods like chop. I would have used "oddoneoutz".headOption in Scala, but it is depreciated. I don't want to get into the overly complex:
string.slice(0, string.length - 1)
Please someone tell me there is a nice simple method like chop for something this common.
Upvotes: 91
Views: 88124
Reputation: 3283
If you want just to remove the last character use .dropRight(1)
. Alternatively, if you want to remove a specific ending character you may want to use a match pattern as
val s: String = "hello!"
val sClean: String = s.takeRight(1) match {
case "!" => s.dropRight(1)
case _ => s
}
Upvotes: 3
Reputation: 7989
If you want the most efficient solution than just use:
str.substring(0, str.length - 1)
Upvotes: 5
Reputation: 7963
How about using dropRight, which works in 2.8:-
"abc!".dropRight(1)
Which produces "abc"
Upvotes: 177
Reputation: 67822
string.reverse.substring(1).reverse
That's basically chop, right? If you're longing for a chop method, why not write your own StringUtils
library and include it in your projects until you find a suitable, more generic replacement?
Hey, look, it's in commons.
Upvotes: 4