javacharcase-conversion

Converting a lowercase char to uppercase without using an if statement


How I can convert a lowercase char to uppercase without using an if statement?. I.e. don't use code like this:

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

Solution

  • If you are sure that your characters are ASCII alphabetic, then you can unset the bit that makes it lowercase, since the difference between the lowercase and uppercase latin chars is only one bit in the ASCII table.

    You can simply do:

    char upper = c & 0x5F;