object Acronym {
def abbreviate(phrase: String): String = {
raw"[\p{L}']+".r
.findAllIn(phrase)
.map(_.head.toUpper)
.mkString
}
}
This approach starts by defining a Regex
pattern using a raw interpolator.
The raw interpolator allows using the backslash escape character in a Regex
patttern without having to escape the backslash
with another backslash.
The pattern looks for one or more Unicode letter or dash characters.
The Regex
calls its findAllIn()
method, which finds all non-overlapping matches of the Regex
pattern
in the input phrase.
The resulting MatchIterator
of words is chained to the map()
method, which calls toUpper()
on the head of each word
and passes the uppercased first character of each word to the mkString()
method, which returns
all of those characters from the abbreviate()
method as a String
.
9th Oct 2024
·
Found it useful?