我怎样才能大写和小写一个字符
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;
}
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;
}