1. Overview

In this tutorial, we’ll see how we can remove characters from the end of a String in Scala.

2. Remove Characters from the End of a String

There are a few different approaches to achieving this. Let’s go through them.

2.1. Using substring()

The first approach uses a widely known String method: substring(). This method allows extracting a sub-section of a given String by passing two arguments to define the start and end index of the substring:

scala> val s = "my string"
val s: String = my string

scala> var charsToRemove = 3
var charsToRemove: Int = 3

scala> s.substring(0, s.length - charsToRemove)
val res0: String = my str

scala> var charsToRemove = 1
var charsToRemove: Int = 1

scala> s.substring(0, s.length - charsToRemove)
val res1: String = my strin

By specifying 0 as the first argument, we’re able to select a substring from the start until the specified index in the second parameter.

2.2. Using dropRight()

Another possible solution is to use the fact that a String is like a sequence of chars. Due to this, we can use the dropRight() method, which removes the N far most chars:

scala> val s = "my string"
val s: String = my string

scala> s.dropRight(3)
val res0: String = my str

scala> s.dropRight(1)
val res1: String = my strin

This method just needs to receive as an argument the number of chars to remove, and it works perfectly.

2.3. Using init()

This other approach is not as widely known, but it can be useful to remove just the last char of the String (a bit like the head method, but the opposite):

scala> val s = "my string"
val s: String = my string

scala> s.init
val res0: String = my strin

As we can see in the example, by calling the init() method, we remove the last character of the String. If you just need to remove a single element, this solution will be fine. If you need to remove more characters, you must look at one of the other approaches described before.

2.4. Using Apache Commons StringUtils

Finally, we can also use external libs like Apache Commons StringUtils class, which provides many useful methods like chop:

scala> StringUtils.chop("abc")
val res0: String = ab

The method behaves very similarly to the init() method we saw before, as it removes the last character of the String. This lib was written in Java, so it may not be as idiomatic, but it still shows very useful.

3. Conclusion

In this article, we saw a few different approaches on how to remove characters from the end of a String in Scala.

Comments are closed on this article!