Kotlin 为什么此代码不是';t将所有大写字母替换为小写字母,将所有小写字母替换为大写字母?
我原以为这段代码会将所有的大写字母改为小写字母,并将小写字母改为大写字母,但它不起作用。。为什么?Kotlin 为什么此代码不是';t将所有大写字母替换为小写字母,将所有小写字母替换为大写字母?,kotlin,Kotlin,我原以为这段代码会将所有的大写字母改为小写字母,并将小写字母改为大写字母,但它不起作用。。为什么? fun main(args: Array<String>) { val userInput = readLine()!! val output = userInput for(a in output){ when{ a.isUpperCase() -> a.toLowerCase() a.
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 main(args:Array){
val userInput=readLine()!!
val输出=用户输入
用于(输出中的a){
什么时候{
a、 isUpperCase()->a.toLowerCase()
a、 isLowerCase()->a.toUpperCase()
其他->a
}
}
println(输出)
}
在代码中,您创建了一个大写/小写字符,但没有将其分配给新的输出字符串。处理字符串的方法不会更改现有的字符串,而是使用更改后的值创建它的副本 Kotlin具有for(i in 0直到input.length)
以避免手动“-1”。因为您不需要索引,所以我喜欢Kotlin的String.forEach
,它直接为您提供字符:input.forEach{…add to builder…}
;字符可通过it
获得。对我来说,使用map更为惯用:input.map{…swap case…}.joinToString(“”)
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()
}