Scala Strip Strings: stripLineEnd and stripMargin

Use the stripLineEnd and stripMargin functions to remove characters from strings.
Strip. Often strings have surrounding whitespace. A string may have a trailing newline. It may have a margin (with a separator) at its start.
With special strip functions, on the StringLike type, we process these whitespace sequences. We eliminate them. We handle prefixes and suffixes.
StripLineEnd. This program invokes the stripLineEnd def. It removes a trailing newline from a string. It is similar to "chop" or "chomp" in scripting languages.
Scala program that uses stripLineEnd val name = "Thomas Browne\n" // Remove end newline from the string. val result = name.stripLineEnd // Print the result. println("[" + result + "]") Output [Thomas Browne]
StripMargin. Often in text processing a string has a "start" character that ends its leading margin. Whitespace chars (like spaces) may precede this.

Here: With stripMargin we handle this case. We eliminate the entire margin (leading blanks and separator) from the strings in a list.

Scala program that uses stripMargin // These strings have margins. val lines = List(" :cat", " :dog") for (line <- lines) { // Remove all blanks and a separator character at start of string. val result = line.stripMargin(':') // Print results. println("[" + line + "] " + result) } Output [ :cat] cat [ :dog] dog
StripMargin, no argument. We can use stripMargin with no argument. This removes a vertical bar from the beginning of the string (along with the spaces and whitespace).
Scala program that uses stripMargin val data = " |Example" // With this version of stripMargin, the vertical bar is removed. val result = data.stripMargin // Print the result. println("[" + result + "]") Output [Example]
StripPrefix, stripSuffix. These methods are similar to startsWith and endsWith, but they also remove the starting and ending substrings.

Info: If a string's start or end matches the argument, that part is removed. Otherwise the string is returned with no changes.

Scala program that uses stripPrefix and stripSuffix // Has a prefix and a suffix (content is "cat"). val input = "x:cat:end" // Remove prefix. val prefixRemoved = input.stripPrefix("x:") // Remove suffix. val suffixRemoved = input.stripSuffix(":end") // Remove prefix and suffix. val bothRemoved = input.stripPrefix("x:").stripSuffix(":end") // Print stripped strings. println(prefixRemoved) println(suffixRemoved) println(bothRemoved) Output cat:end x:cat cat
A review. Magic is great. But many parts of programming are not magic. Instead we must clear unwanted characters (like newlines, spaces) from strings. Strip methods help.
Dot Net Perls
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to