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
*/