В Scala класс String является неизменяемым, то есть его значения нельзя изменить после их создания. Однако вы можете расширить класс String и добавить свои собственные методы для выполнения различных операций со строками. Эта статья проведет вас через процесс расширения класса String в Scala и предоставит примеры кода для различных методов.
Метод 1: обратная строка
implicit class StringExtensions(val str: String) {
def reverseString: String = str.reverse
}
val myString = "Hello, World!"
val reversedString = myString.reverseString
println(reversedString) // Output: "!dlroW ,olleH"
Метод reverseString
меняет местами символы в строке, используя метод reverse
, доступный в классе String.
Метод 2: подсчет слов
implicit class StringExtensions(val str: String) {
def countWords: Int = str.split("\\s+").length
}
val myString = "This is a sample string."
val wordCount = myString.countWords
println(wordCount) // Output: 5
Метод countWords
разбивает строку на слова, используя пробелы в качестве разделителя, и возвращает количество слов.
Метод 3: заглавная буква
implicit class StringExtensions(val str: String) {
def capitalizeFirstLetter: String = str.capitalize
}
val myString = "hello, world!"
val capitalizedString = myString.capitalizeFirstLetter
println(capitalizedString) // Output: "Hello, world!"
Метод capitalizeFirstLetter
делает первую букву строки заглавной, используя метод capitalize
.
Метод 4: удаление дубликатов
implicit class StringExtensions(val str: String) {
def removeDuplicates: String = str.distinct
}
val myString = "abbcccddddeeeee"
val deduplicatedString = myString.removeDuplicates
println(deduplicatedString) // Output: "abcde"
Метод removeDuplicates
удаляет повторяющиеся символы из строки с помощью метода distinct
.
Метод 5: isPalindrome
implicit class StringExtensions(val str: String) {
def isPalindrome: Boolean = str == str.reverse
}
val myString = "racecar"
val isPalindrome = myString.isPalindrome
println(isPalindrome) // Output: true
Метод isPalindrome
проверяет, является ли строка палиндромом, сравнивая ее с обратной стороной.
Расширение класса String в Scala позволяет добавлять собственные методы для выполнения различных операций со строками. В этой статье мы рассмотрели несколько полезных методов, в том числе reverseString
, countWords
, capitalizeFirstLetter
, removeDuplicates
и isPalindrome
. Используя эти методы, вы можете улучшить функциональность класса String и писать более чистый и выразительный код в своих программах Scala.