언어/Java
대소문자를 서로 변환하는 방법 (Java)
alpacadabra
2024. 12. 19. 12:13
위의 ascii 테이블을 보면, 알파벳 대소문자 간에는 32의 값 차이가 있는 것을 알 수 있다.
이에 대소문자를 변환하는 원시적인 방법으로,
char diff = 'a' - 'A'; //32
if ('a' <= ch && ch <= 'z') //소문자를 대문자로
ch -= diff;
if ('A' <= ch && ch <= 'Z') //대문자를 소문자로
ch += diff;
값 차이를 이용한 연산이 있다.
팁으로는 대소문자의 차를 사용하면 굳이 32라는 수치를 외울 필요가 없다는 점이겠다.
원시적인 방법 외에도 메서드를 활용하는 방법이 있다.
System.out.println(Character.toUpperCase('c')); //C
System.out.println(Character.toUpperCase('C')); //C
System.out.println(Character.toUpperCase('!')); //!
System.out.println(Character.toLowerCase('C')); //c
System.out.println(Character.toLowerCase('c')); //c
System.out.println(Character.toLowerCase('!')); //!
Character.toUpperCase(char ch)와 toLowerCase(char ch)를 사용하면 된다.
대문자를 대문자로 바꾸려 하거나, 매개변수로 특수문자를 전달할 경우에는 에러 없이 그냥 무시된다.
결과가 맞는지 궁금하다면 복붙해서 실행해 보시라.