将字符串中的java char转换为lowerCase/upperCase

me7*_*921 3 java string character lowercase uppercase

我有一个名为"originalalstring"的字符串,其中包含一个混合大写和小写字符的句子.

我只是想翻转字符串,以便如果一个字符是小写字母使其大写,反之亦然并返回它.

我试过这段代码,它返回upperCase中的原始字符串:

for (int i = 0; i < originalString.length(); i++) {
        char c = originalString.charAt(i);

        if (Character.isUpperCase(c)) {
            originalString += Character.toLowerCase(c);

        }

        if (Character.isLowerCase(c)) {
            originalString += Character.toUpperCase(c);

        }

    }
    return originalString;
Run Code Online (Sandbox Code Playgroud)

rge*_*man 7

您正在为原始字符串添加字符.此外,这意味着您的for循环将永远不会到循环迭代的末尾for,因为originalString.length()也会更改每个循环.这是一个无限循环.

相反,创建一个StringBuilder存储转换后的字符,当您在​​原始字符串上进行迭代时.将其转换为a String并在最后返回它.

StringBuilder buf = new StringBuilder(originalString.length());
for (int i = 0; i < originalString.length(); i++) {
    char c = originalString.charAt(i);

    if (Character.isUpperCase(c)) {
        buf.append(Character.toLowerCase(c));

    }
    else if (Character.isLowerCase(c)) {
        buf.append(Character.toUpperCase(c));

    }
    // Account for case: neither upper nor lower
    else {
        buf.append(c);
    }

}
return buf.toString();
Run Code Online (Sandbox Code Playgroud)


小智 6

Common-lang提供了一个swapCase函数,请参阅doc.来自doc的示例:

StringUtils.swapCase(null)                 = null
StringUtils.swapCase("")                   = ""
StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
Run Code Online (Sandbox Code Playgroud)

如果你真的想自己做,你可以查看普通信息的来源StringUtils