反转字符串大小写的最有效方法是什么?
input = "Hello World"
output = "hELLO wORLD"
此处大写字符将转换为小写,反之亦然。
有默认的库支持吗?
答案 0 :(得分:1)
字符串扩展功能可反转字符串的大小写:
方法1:使用CharArray
fun String.reverseCaseOfString(): String {
val inputCharArr = toCharArray() // Converting the input to char array
var output = ""
for (i in 0 until inputCharArr.size) {
output += if (inputCharArr[i].isUpperCase()) { // Checking the character is in uppercase or not
inputCharArr[i].toLowerCase() // Converting the char to lower case
} else {
inputCharArr[i].toUpperCase() // Converting the char to upper case
}
}
return output
}
方法2:使用CharIterator
private fun String.reverseCaseOfString(): String {
val charIterator = iterator() // CharIterator of string
var output = ""
for (char in charIterator) {
output += if (char.isUpperCase()) { // Checking the character is in uppercase or not
char.toLowerCase() // Converting the char to lower case
} else {
char.toUpperCase() // Converting the char to upper case
}
}
return output
}
然后您可以通过以下代码使用此扩展功能:
fun main(args: Array<String>) {
print("Hello World".reverseCaseOfString())
}
输出:hELLO wORLD
到目前为止,默认库支持不可用以反转字符串的大小写。
答案 1 :(得分:1)
在科特林,我会提出这样的建议:
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
'Me.ServiceName = "Bar"
End Sub
将String中的每个Char转换为相反的字符,然后无限制地加入String。
可用于以下用途:
fun String.reverseCase(): String = map { if (it.isUpperCase()) it.toLowerCase() else it.toUpperCase() }.joinToString("")
答案 2 :(得分:1)
这是我的尝试,目的是使代码易于阅读,而且性能出色。
fun String.invertCase(): String {
val array = this.toCharArray()
this.forEachIndexed { index, char ->
when {
char.isUpperCase() -> array[index] = char.toLowerCase()
char.isLowerCase() -> array[index] = char.toUpperCase()
}
}
return String(array)
}
val input = "Hello World"
println(input.invertCase()) // hELLO wORLD
答案 3 :(得分:0)
对我来说,一种优雅的方式是:
为Char创建扩展功能:
fun Char.reverseCase(): Char = if (isUpperCase()) toLowerCase() else toUpperCase()
,然后用它创建String的扩展名:
fun String.reverseCase(): String = toCharArray().map { it.reverseCase() }.joinToString("")