본문 바로가기

IT

자바에서 문자열 소대문자 변환하기(toLowerCase, toUpperCase)

728x90
반응형
728x170

자바에서 문자열에 포함된 대문자를 소문자로, 소문자를 대문자로 바꾸는 방법은 여러 가지가 있습니다. 이번 글에서는 자바에서 대문자를 소문자로, 소문자를 대문자로 바꾸는 방법에 대해서 알아보겠습니다.

 

문자열을 소문자를 대문자로 변환하거나, 거꾸로 대문자를 소문자로 변환하는 등 문자열 변환에 대한것은 실제 프로덕트에서도 많이 쓰이고 코딩 테스트 등에서도 단골 문제로 엮여 나오는 경우가 많습니다.

 

따라서 다양한 방법으로 자바에서 문자의 소문자, 대문자를 각각 변환하는 방법에 대해서 알아보도록 하겠습니다.

 

1. toLowerCase()와 toUpperCase() 메소드

자바에서 문자열을 소문자로 바꾸는 가장 간단한 방법은 String 클래스의 toLowerCase() 메소드를 사용하는 것입니다. 이 메소드는 문자열에 포함된 모든 대문자를 소문자로 바꿉니다. 마찬가지로, toUpperCase() 메소드는 문자열에 포함된 모든 소문자를 대문자로 바꿉니다.

 

예를 들어, 다음과 같은 코드를 작성하면 문자열 "Hello, World!"를 모두 소문자로 바꿀 수 있습니다.

String str = "Hello, World!";
String lowerStr = str.toLowerCase();
System.out.println(lowerStr); // 출력 결과: hello, world!

 

마찬가지로, 다음과 같이 작성하면 문자열 "Hello, World!"를 모두 대문자로 바꿀 수 있습니다.

String str = "Hello, World!";
String upperStr = str.toUpperCase();
System.out.println(upperStr); // 출력 결과: HELLO, WORLD!

 

 

2. Character 클래스의 toLowerCase()와 toUpperCase() 메소드

String 클래스의 toLowerCase()와 toUpperCase() 메소드 외에도, Character 클래스에는 문자를 소문자나 대문자로 바꾸는 메소드가 있습니다. Character 클래스의 toLowerCase() 메소드는 대문자를 소문자로, toUpperCase() 메소드는 소문자를 대문자로 바꿉니다.

 

예를 들어, 다음과 같은 코드를 작성하면 문자를 소문자나 대문자로 변환 할 수 있습니다.

// 대문자를 소문자로 변환
char ch = 'A';
char lowerCh = Character.toLowerCase(ch);
System.out.println(lowerCh); // 출력 결과: a


// 소문자를 대문자 변환
char ch = 'a';
char upperCh = Character.toUpperCase(ch);
System.out.println(upperCh); // 출력 결과: A

 

3. ASCII 코드를 이용한 변환

마지막으로, ASCII 코드를 이용하여 대문자와 소문자를 변환하는 방법이 있습니다. ASCII 코드는 모든 문자에 대해 숫자 코드를 정의하고 있으며, 대문자와 소문자는 각각 서로 다른 숫자 코드를 가지고 있습니다.

예를 들어, 대문자 'A'는 ASCII 코드에서 65번에 해당하며, 소문자 'a'는 ASCII 코드에서 97번에 해당합니다. 따라서 대문자를 소문자로 바꾸려면 문자 코드에서 32를 빼면 되고 반대로 소문자를 대문자로 바꾸려면 문자 코드에서 32를 더하면 됩니다.

 

아래는 ASCII 코드를 이용하여 대문자와 소문자를 변환하는 예시 코드입니다.

char ch = 'A';
char convertedCh = (ch >= 'a' && ch <= 'z') ? (char)(ch - 32) : (char)(ch + 32);
System.out.println(convertedCh); // 출력 결과: a

 

위 코드에서는 우선 대문자인지 소문자인지 판별한 후, 대문자일 경우 32를 더하여 소문자로 변환하고, 소문자일 경우 32를 빼서 대문자로 변환합니다.

 

하지만 이 방법은 코드가 복잡해지고 가독성이 떨어질 수 있으므로,

가능하면 toLowerCase()와 toUpperCase() 메소드를 사용하는 것이 좋습니다.

 

위에서 소개한 세 가지 방법을 모두 사용하여 문자열과 문자를 대소문자로 변환할 수 있습니다.

 

 

보통은 대부분의 언어에서 공식적으로 toLowerCase()와 toUpperCase()  메소드를 제공하는 편이고, 코딩테스트 등에서 대소문자 변환 관련하여 toLowerCase()와 toUpperCase()  를 사용하지 말라고 하는 경우나 전통적인 손 코딩 방법등으로 풀어서 해보라는 경우에만 보통 ASCII 코드를 사용하여 변환하곤 합니다.

 

 

728x90
반응형
그리드형