Java/문자열

[Java]문자열 대문자인지 소문자인지 확인하는 방법

DevStory 2022. 8. 18.

문자열 대문자인지 소문자인지 확인하는 방법

이번 포스팅은 Java에서 문자 또는 문자열이 대문자인지 소문자인지 확인할 수 있는 몇 가지 방법을 소개합니다.


방법 1. 문자(Character)인 경우

문자열(String)이 아닌 문자(Character)인 경우 타입이 다르므로 Character 클래스에서 제공하는 메서드를 사용합니다.

 

Character 클래스는 대문자 또는 소문자를 확인할 수 있도록 다음 두 가지 메서드를 제공합니다.

 

isUpperCase() 메서드

- 매개변수로 char 타입의 값 또는 int 타입의 값을 전달합니다.

- 전달된 값이 대문자인 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.

 

isLowerCase() 메서드

- 매개변수로 char 타입의 값 또는 int 타입의 값을 전달합니다.

- 전달된 값이 소문자인 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.

public static void main(String args[]) {
  char charValue = 'A';

  if(Character.isUpperCase(charValue)) {
    System.out.println("A는 대문자입니다.");
  }

  if(Character.isLowerCase(charValue)) {
    System.out.println("A는 소문자입니다.");
  }
}

[실행 결과]

A는 대문자입니다.

방법 2. 문자열(String)인 경우 - 반복문

이번에는 문자가 아닌 문자열이 대문자인지 소문자인지 확인하는 방법입니다.

 

첫 번째 방법으로 문자열을 char 타입의 배열로 변환 후 배열의 요소를 순회하면서 Character 클래스의 isUpperCase() 메서드 또는 isLowerCase() 메서드를 호출합니다.

 

다음 예제는 문자열이 대문자인지 확인하는 방법입니다.

private static boolean isStringUpperCase(String str){
  char[] charArray = str.toCharArray();

  for(int index = 0; index < charArray.length; index++){
    if( !Character.isUpperCase( charArray[index] ))
      return false;
  }
  return true;
}

public static void main(String args[]) {
  String strValue1 = "ABC";
  String strValue2 = "abc";
  String strValue3 = "A1B2";

  System.out.println("\"" + strValue1 + "\"는 대문자인가? " + isStringUpperCase(strValue1));
  System.out.println("\"" + strValue2 + "\"는 대문자인가? " + isStringUpperCase(strValue2));
  System.out.println("\"" + strValue3 + "\"는 대문자인가? " + isStringUpperCase(strValue3));
}

[실행 결과]

"ABC"는 대문자인가? true
"abc"는 대문자인가? false
"A1B2"는 대문자인가? false

문자열이 소문자인지 확인하고 싶다면 isUpperCase() 메서드를 isLowerCase() 메서드로 교체합니다.


방법 3. 문자열(String)인 경우 - 대문자 또는 소문자로 변경 후 비교

문자열이 대문자인지 소문자인지 확인하는 또 다른 방법으로 String 클래스에서 제공하는 toUpperCase() 메서드와 toLowerCase() 메서드를 사용합니다.

 

toUpperCase() 메서드

- 대문자로 변환된 문자열을 반환합니다.

 

toLowerCase() 메서드

- 소문자로 변환된 문자열을 반환합니다.

 

문자열이 소문자인지 확인하고 싶다면, equals() 메서드에 소문자로 변환된 문자열을 전달합니다. 반대로 대문자인지 확인하고 싶다면, equals() 메서드에 대문자로 변환된 문자열을 전달합니다.

 

다음 예제는 문자열이 대문자인지 확인하는 방법입니다.

private static boolean isStringUpperCase(String str){
  if(!str.equals(str.toUpperCase())) return false;
  return true;
}

public static void main(String args[]) {
  String strValue1 = "ABC";
  String strValue2 = "abc";

  System.out.println("\"" + strValue1 + "\"는 대문자인가? " + isStringUpperCase(strValue1));
  System.out.println("\"" + strValue2 + "\"는 대문자인가? " + isStringUpperCase(strValue2));
}

[실행 결과]

"ABC"는 대문자인가? true
"abc"는 대문자인가? false

문자열이 소문자인지 확인하고 싶다면 toUpperCase() 메서드를 toLowerCase() 메서드로 교체합니다.


주의사항

String 클래스의 toUpperCase() 메서드와 toLowerCase() 메서드는 숫자 또는 특수 기호를 변경하지 않습니다.

 

따라서, 문자열에 숫자 또는 특수 기호가 존재하는 경우 반복문을 사용하는 방법과 대문자 또는 소문자로 변경 후 비교하는 방법의 결과가 다를 수 있습니다.

반응형

댓글