0

如何char在不使用 if 语句的情况下将小写字母转换为大写字母?即不要使用这样的代码:

if(c > 'a' && c < 'z')
{
    c = c-32;
}
4

4 回答 4

2

你可以使用这个:

char uppercase = Character.toUpperCase(c);
于 2014-03-28T19:07:04.967 回答
2

使用Character.toUpperCase(char)

使用 UnicodeData 文件中的大小写映射信息将字符参数转换为大写。

例如,Character.toUpperCase('a')返回'A'.

所以你可能想要的完整代码是:

c = Character.toUpperCase(c);
于 2014-03-28T19:07:06.213 回答
1

您可以使用三元运算符。对于您的情况,请尝试以下操作:

c = (c >= 'a' && c <= 'z') ? c = c - 32 : c;
于 2014-03-28T19:08:14.393 回答
1

如果您确定您的字符是 ASCII 字母,那么您可以取消设置使其小写的位,因为小写和大写拉丁字符之间的区别仅在 ASCII 表中的一位。

你可以简单地做:

char upper = c & 0x5F;
于 2014-03-28T19:09:10.850 回答