위의 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)를 사용하면 된다.
대문자를 대문자로 바꾸려 하거나, 매개변수로 특수문자를 전달할 경우에는 에러 없이 그냥 무시된다.
결과가 맞는지 궁금하다면 복붙해서 실행해 보시라.
'언어 > Java' 카테고리의 다른 글
대소문자를 판별하는 방법 (Java) (0) | 2024.12.19 |
---|---|
문자열을 순회하는 방법 (Java) (0) | 2024.12.16 |
Spring 프레임워크의 의존성 주입(DI) (0) | 2024.12.15 |
Java Stream의 개념 (1) | 2024.11.29 |
댓글