是否有使用正则表达式来切换字符串中的字符大小写?

时间:2019-04-07 08:07:41

标签: string kotlin

我有一个像这样的字符串

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

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

1 个答案:

答案 0 :(得分:3)

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

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

String