如何在Java中反转String的大小写?

Jam*_*mes 13 java string case case-sensitive

我想更改一个字符串,以便所有大写字符变为小写,并且所有小写字符变为大写.数字字符只是被忽略.

所以"AbCdE123"成为"aBcDe123"

我想必须有一种方法来遍历String并翻转每个字符,或者可能是一些可以做到的正则表达式.

Jac*_*son 23

Apache Commons StringUtils有一个swapCase方法.

  • 可以反对为一个非常有限的复杂性的单个函数添加依赖关系到一个较大的库. (2认同)

Jon*_*eet 18

我不相信有任何内置的东西(这是相对不寻常的).这应该这样做:

public static String reverseCase(String text)
{
    char[] chars = text.toCharArray();
    for (int i = 0; i < chars.length; i++)
    {
        char c = chars[i];
        if (Character.isUpperCase(c))
        {
            chars[i] = Character.toLowerCase(c);
        }
        else if (Character.isLowerCase(c))
        {
            chars[i] = Character.toUpperCase(c);
        }
    }
    return new String(chars);
}
Run Code Online (Sandbox Code Playgroud)

请注意,这不会执行String.toUpperCase/String.toLowerCase所做的特定于语言环境的更改.它也不处理非BMP字符.