我怎样才能大写和小写一个字符

How can I uppercase and lowercase a Char

GWT 不允许我使用 Character.toUpperCase(char)Character.toLowerCase(char)。如何重写下面的方法以不使用 Character class 或任何外部库

public static String toDisplayCase(String s) {

    final String ACTIONABLE_DELIMITERS = " '-/"; // these cause the character following
                                                 // to be capitalized

    StringBuilder sb = new StringBuilder();
    boolean capNext = true;

    for (char c : s.toCharArray()) {
        c = (capNext)
                ? Character.toUpperCase(c)
                : Character.toLowerCase(c);
        sb.append(c);
        capNext = (ACTIONABLE_DELIMITERS.indexOf((int) c) >= 0); // explicit cast not needed
    }
    return sb.toString();
}

只需使用基本运算符

if (c >= 'a' && c <= 'z')
    c = c - 'a' + 'A';  // lower to upper
if (c >= 'A' && c <= 'Z')
    c = c - 'A' + 'a';  // upper to lower 

如果不知何故,不允许您使用字符 class(虽然这听起来很疯狂),您可以添加或减去 ASCII 值。

例如:

for (char c : s.toCharArray()) {
    c = (capNext)
            ?  ( (c>='a'&&c<='z') ? c+32 : c) //to Upper Case
            :  ( (c>='A'&&c<='Z') ? c-32 : c) //to Lower Case
    sb.append(c);
    capNext = (ACTIONABLE_DELIMITERS.indexOf((int) c) >= 0); // explicit cast not needed
}

这里是使用 ascii 值的 toLower 和 toUpper。希望对你有帮助。

static char toUpperCase(char c) {
    if (97 <= c && c <= 122) {
        c = (char) ((c - 32));
    }
    return c;
}

static char toLowerCase(char c) {
    if (65 <= c && c <= 90) {
        c = (char) ((c + 32));
    }
    return c;
}