언어/Java

대소문자를 서로 변환하는 방법 (Java)

alpacadabra 2024. 12. 19. 12:13

출처 : https://www.geeksforgeeks.org/ascii-table/

 

위의 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)를 사용하면 된다.

대문자를 대문자로 바꾸려 하거나, 매개변수로 특수문자를 전달할 경우에는 에러 없이 그냥 무시된다.

결과가 맞는지 궁금하다면 복붙해서 실행해 보시라.