gpt4 book ai didi

string - 是否有一个正则表达式来切换字符串中的字符大小写?

转载 作者:行者123 更新时间:2023-12-02 12:41:35 25 4
gpt4 key购买 nike

我有一个像

var str = "AbCdEfGhIj"

我想切换每个字符的大小写,即

转换成 var str = "aBcDeFgHiJ"
我目前正在下面使用此代码
val bytes = "HEllo WoRLd".toByteArray()
// Swap upper and lower case letters.
for (i in bytes.indices) {
if (bytes[i] >= 'A'.toByte() && bytes[i] <= 'Z'.toByte())
bytes[i] = ('a'.toInt() + (bytes[i] - 'A'.toByte())).toByte()
else if (bytes[i] >= 'a'.toByte() && bytes[i] <= 'z'.toByte())
bytes[i] = ('A'.toInt() + (bytes[i] - 'a'.toByte())).toByte()
}
System.out.print(String(bytes)) // heLLO wOrlD

想知道是否有正则表达式可以做到这一点

最佳答案

正如评论所说,正则表达式用于匹配,而不是更改。

但是问题中的代码可以改进。对于非ASCII字符,它将失败(并且不必要地复杂)。这是更优雅的版本,作为String的扩展功能:

fun String.swapCase() = map {
when {
it.isUpperCase() -> it.toLowerCase()
it.isLowerCase() -> it.toUpperCase()
else -> it
}
}.joinToString("")

println("HEllo WoRLd".swapCase()) // heLLO wOrlD

关于string - 是否有一个正则表达式来切换字符串中的字符大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55556902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com