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