В 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.