我以为这段代码会将所有大写字母都变为小写字母,并将小写字母变为大写字母,但是它不起作用..为什么呢?

fun main(args: Array<String>) {
    val userInput = readLine()!!
    val output = userInput

    for(a in output){
        when{
            a.isUpperCase() -> a.toLowerCase()
            a.isLowerCase() -> a.toUpperCase()
            else -> a
        }
    }

    println(output)
}

最佳答案

fun changeCase(input : String) : String {
    val builder = StringBuilder()
    for (i in 0..input.length-1){
        val char : Char = input[i]
        if (char.isUpperCase) builder.append(char.toLowerCase)
        else if (char.isLowerCase) builder.append(char.toUpperCase)
        else builder.append(char)
    }
    return builder.toString()
}

在您的代码中,您创建了一个大写/小写字符,但没有将其分配给新的输出字符串。处理String的方法不会更改现有的方法,而是使用更改后的值创建它的副本!

10-04 17:15