How to convert a string to PascalCase using RegEx in Kotlin

2 Answers

0 votes
fun toPascalCase(input: String): String {
    var str = input
    if (!str.contains(" ")) {
        str = str.replace(Regex("(?<=[a-z])(?=[A-Z])"), " ")
    }
 
    val words = str.toLowerCase().split(Regex("[\\s_]+"))
    val result = StringBuilder()
 
    for (word in words) {
        if (word.isNotEmpty()) {
            result.append(word.capitalize())
        }
    }
 
    return result.toString()
}
 
fun main() {
    println(toPascalCase("get file content"))
    println(toPascalCase("get_file_content"))
    println(toPascalCase("get______file___content"))
    println(toPascalCase("get______file____  content"))
    println(toPascalCase("GET FILE CONTENT"))
    println(toPascalCase("get    file      content"))
    println(toPascalCase("getFileContent"))
}
 
 
    
/*
run:
 
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
  
*/

 



answered Feb 23, 2025 by avibootz
edited Feb 24, 2025 by avibootz
0 votes
fun toPascalCase(input: String): String {
    var str = input
    if (!str.contains(" ")) {
        str = str.replace(Regex("(?<=[a-z])(?=[A-Z])"), " ")
    }
 
    val words = str.lowercase().split(Regex("[\\s_]+"))
    val result = StringBuilder()
 
    for (word in words) {
        if (word.isNotEmpty()) {
            result.append(word.replaceFirstChar { it.uppercase() })
        }
    }
 
    return result.toString()
}
 
fun main() {
    println(toPascalCase("get file content"))
    println(toPascalCase("get_file_content"))
    println(toPascalCase("get______file___content"))
    println(toPascalCase("get______file____  content"))
    println(toPascalCase("GET FILE CONTENT"))
    println(toPascalCase("get    file      content"))
    println(toPascalCase("getFileContent"))
}
 
 
    
/*
run:
 
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
  
*/

 



answered Feb 24, 2025 by avibootz
...