Почему этот код не заменяет все прописные буквы строчными и все строчные буквы заглавными? - PullRequest
1 голос
/ 07 ноября 2019

Я думал, что этот код изменит все прописные буквы на строчные, а строчные - на прописные, но он не работает .. почему?

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 Ответ

1 голос
/ 07 ноября 2019
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, не изменяют существующий, а создают его копию с измененным значением!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...