为什么此代码没有将所有大写字母都替换为小写字母,而又不将所有小写字母替换为大写字母?

时间:2019-11-07 09:10:26

标签: kotlin

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

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)
}

1 个答案:

答案 0 :(得分:1)

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的方法不会更改现有的方法,而是使用更改后的值创建它的副本!