将小写字符转换为大写字符而不使用if语句



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

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

你可以这样做:

char uppercase = Character.toUpperCase(c);

使用Character.toUpperCase(char):

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

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

所以你想要的完整代码可能是:
c = Character.toUpperCase(c);

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

你可以简单地做:

char upper = c & 0x5F;

可以使用三元运算符。针对您的情况,尝试这样做:

c = (c >= 'a' && c <= 'z') ? c = c - 32 : c;

最新更新