Изучение Kotlin: разделение строк по символам верхнего регистра

В Kotlin разделение строки по символам верхнего регистра может быть полезно в различных сценариях. Работаете ли вы над обработкой текста, анализом данных или просто манипулируете строками, понимание различных методов разделения строк по символам верхнего регистра может значительно расширить ваши возможности кодирования. В этой статье мы рассмотрим несколько методов с примерами кода для разделения строк в Kotlin на основе символов верхнего регистра.

Метод 1: использование Regex и Split()

fun splitByUppercase(string: String): List<String> {
    return string.split(Regex("(?=[A-Z])"))
}
// Example usage
val exampleString = "HelloWorldThisIsAnExample"
val splitList = splitByUppercase(exampleString)
println(splitList)

Метод 2: использование текста Apache Commons

import org.apache.commons.text.WordUtils
fun splitByUppercase(string: String): List<String> {
    return WordUtils.capitalizeFully(string).split(" ")
}
// Example usage
val exampleString = "HelloWorldThisIsAnExample"
val splitList = splitByUppercase(exampleString)
println(splitList)

Метод 3: использование CharArray и StringBuilder

fun splitByUppercase(string: String): List<String> {
    val stringBuilder = StringBuilder()
    val splitList = mutableListOf<String>()
    string.toCharArray().forEach { char ->
        if (char.isUpperCase()) {
            splitList.add(stringBuilder.toString())
            stringBuilder.clear()
        }
        stringBuilder.append(char)
    }
    splitList.add(stringBuilder.toString())
    return splitList
}
// Example usage
val exampleString = "HelloWorldThisIsAnExample"
val splitList = splitByUppercase(exampleString)
println(splitList)

Метод 4. Использование BreakIterator в Java

import java.text.BreakIterator
fun splitByUppercase(string: String): List<String> {
    val iterator = BreakIterator.getWordInstance()
    iterator.setText(string)
    val splitList = mutableListOf<String>()
    var start = iterator.first()
    var end = iterator.next()
    while (end != BreakIterator.DONE) {
        val word = string.substring(start, end)
        if (word.isNotEmpty() && word[0].isUpperCase()) {
            splitList.add(word)
        }
        start = end
        end = iterator.next()
    }
    return splitList
}
// Example usage
val exampleString = "HelloWorldThisIsAnExample"
val splitList = splitByUppercase(exampleString)
println(splitList)

В этой статье мы рассмотрели несколько методов разделения строк в Kotlin на основе символов верхнего регистра. Мы рассмотрели различные подходы с использованием регулярных выражений, Apache Commons Text, CharArray с StringBuilder и Java BreakIterator. В зависимости от вашего конкретного варианта использования и предпочтений вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Используя эти методы, вы можете эффективно разбивать строки на основе символов верхнего регистра в ваших проектах Kotlin.