Java 에서 문자가 대문자인지 확인하는 방법

JavaBeginner
지금 연습하기

소개

이 랩에서는 Java 에서 문자가 대문자인지 확인하는 방법을 배우게 됩니다. 이를 위해 Character 클래스에서 제공하는 편리한 도구인 Character.isUpperCase() 메서드를 살펴보겠습니다.

실습 예제를 통해 대문자, 소문자, 비 문자 문자를 포함한 다양한 문자에 Character.isUpperCase()를 사용하여 동작 방식을 이해하고 Java 프로그램에서 주어진 문자가 대문자인지 효과적으로 판단하는 방법을 배우게 됩니다.

Character.isUpperCase() 메서드 사용

이 단계에서는 Character.isUpperCase() 메서드를 사용하여 Java 에서 문자가 대문자인지 확인하는 방법을 살펴보겠습니다. 이 메서드는 개별 문자를 처리하는 데 유용한 메서드를 제공하는 Character 클래스의 일부입니다.

Character.isUpperCase() 메서드는 정적 (static) 메서드이므로, 클래스의 객체를 생성할 필요 없이 Character 클래스 자체에서 직접 호출할 수 있습니다. 이 메서드는 단일 문자를 인수로 받아 문자가 대문자이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

이 메서드를 사용하는 방법을 보여주는 간단한 Java 프로그램을 만들어 보겠습니다.

  1. WebIDE 편집기에서 HelloJava.java 파일을 엽니다 (아직 열려 있지 않은 경우).

  2. 기존 코드를 다음 코드로 바꿉니다.

    public class HelloJava {
        public static void main(String[] args) {
            char char1 = 'A';
            char char2 = 'b';
            char char3 = '7';
    
            boolean isUpper1 = Character.isUpperCase(char1);
            boolean isUpper2 = Character.isUpperCase(char2);
            boolean isUpper3 = Character.isUpperCase(char3);
    
            System.out.println("Is '" + char1 + "' uppercase? " + isUpper1);
            System.out.println("Is '" + char2 + "' uppercase? " + isUpper2);
            System.out.println("Is '" + char3 + "' uppercase? " + isUpper3);
        }
    }

    이 코드에서:

    • 세 개의 char 변수 (char1, char2, char3) 를 선언하고 서로 다른 문자를 할당합니다.
    • Character.isUpperCase()를 사용하여 각 문자가 대문자인지 확인하고 결과를 부울 변수 (isUpper1, isUpper2, isUpper3) 에 저장합니다.
    • 마지막으로 결과를 콘솔에 출력합니다.
  3. 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).

  4. 터미널에서 프로그램을 컴파일합니다.

    javac HelloJava.java
  5. 컴파일된 프로그램을 실행합니다.

    java HelloJava

    다음과 유사한 출력을 볼 수 있습니다.

    Is 'A' uppercase? true
    Is 'b' uppercase? false
    Is '7' uppercase? false

    이 출력은 Character.isUpperCase()가 'A'를 대문자로, 'b'와 '7'을 대문자가 아닌 것으로 올바르게 식별했음을 확인합니다.

대소문자 혼합 문자 테스트

이전 단계에서는 개별 문자에 Character.isUpperCase()를 사용했습니다. 이제 이 메서드를 대문자와 소문자가 혼합된 문자열에 어떻게 적용할 수 있는지 살펴보겠습니다. 이를 통해 문자열을 반복하고 각 문자의 대소문자를 확인하는 방법을 이해할 수 있습니다.

Java 에서 문자열은 일련의 문자입니다. 인덱스 (위치) 를 인수로 사용하는 charAt() 메서드를 사용하여 문자열의 개별 문자에 액세스할 수 있습니다. 인덱스는 첫 번째 문자에 대해 0 부터 시작합니다.

문자열의 문자의 대소문자를 확인하도록 프로그램을 수정해 보겠습니다.

  1. WebIDE 편집기에서 HelloJava.java 파일을 엽니다.

  2. 기존 코드를 다음 코드로 바꿉니다.

    public class HelloJava {
        public static void main(String[] args) {
            String testString = "Hello Java 123";
    
            System.out.println("Checking characters in the string: \"" + testString + "\"");
    
            for (int i = 0; i < testString.length(); i++) {
                char currentChar = testString.charAt(i);
                boolean isUpper = Character.isUpperCase(currentChar);
                System.out.println("Character '" + currentChar + "' at index " + i + " is uppercase? " + isUpper);
            }
        }
    }

    이 업데이트된 코드에서:

    • 대문자, 소문자, 공백 및 숫자가 혼합된 String 변수 testString을 정의합니다.
    • for 루프를 사용하여 문자열의 각 문자를 반복합니다. 루프는 인덱스 0 부터 문자열 길이 (포함하지 않음) 까지 실행됩니다.
    • 루프 내부에서 testString.charAt(i)는 현재 인덱스 i의 문자를 가져옵니다.
    • 그런 다음 Character.isUpperCase()를 사용하여 currentChar가 대문자인지 확인합니다.
    • 마지막으로 문자, 해당 인덱스 및 대문자 확인 결과를 출력합니다.
  3. 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).

  4. 터미널에서 프로그램을 컴파일합니다.

    javac HelloJava.java
  5. 컴파일된 프로그램을 실행합니다.

    java HelloJava

    다음과 유사한 출력을 볼 수 있으며, 문자열의 각 문자에 대한 결과가 표시됩니다.

    Checking characters in the string: "Hello Java 123"
    Character 'H' at index 0 is uppercase? true
    Character 'e' at index 1 is uppercase? false
    Character 'l' at index 2 is uppercase? false
    Character 'l' at index 3 is uppercase? false
    Character 'o' at index 4 is uppercase? false
    Character ' ' at index 5 is uppercase? false
    Character 'J' at index 6 is uppercase? true
    Character 'a' at index 7 is uppercase? false
    Character 'v' at index 8 is uppercase? false
    Character 'a' at index 9 is uppercase? false
    Character ' ' at index 10 is uppercase? false
    Character '1' at index 11 is uppercase? false
    Character '2' at index 12 is uppercase? false
    Character '3' at index 13 is uppercase? false

    이는 Character.isUpperCase()가 문자열에서 추출된 문자에 적용될 때 'H'와 'J'를 대문자로 올바르게 식별하는 방법을 보여줍니다.

문자가 아닌 문자 무시

이전 단계에서 Character.isUpperCase()는 공백이나 숫자와 같이 문자가 아닌 문자에 대해 false를 반환하는 것을 확인했습니다. 텍스트를 분석할 때 종종 문자에만 관심이 있고 다른 문자는 무시하려고 합니다.

Character 클래스는 문자가 문자인지 (대문자 또는 소문자) 여부에 따라 true 또는 false를 반환하는 또 다른 유용한 메서드인 Character.isLetter()를 제공합니다. Character.isLetter()Character.isUpperCase()를 결합하여 문자가 대문자인지 확인하고 문자 이외의 문자를 무시할 수 있습니다.

공백, 숫자 및 기타 문자 이외의 문자를 무시하고 문자열의 대문자 수를 계산하도록 프로그램을 수정해 보겠습니다.

  1. WebIDE 편집기에서 HelloJava.java 파일을 엽니다.

  2. 기존 코드를 다음 코드로 바꿉니다.

    public class HelloJava {
        public static void main(String[] args) {
            String testString = "Hello Java 123";
            int uppercaseCount = 0;
    
            System.out.println("Counting uppercase letters in the string: \"" + testString + "\"");
    
            for (int i = 0; i < testString.length(); i++) {
                char currentChar = testString.charAt(i);
    
                // Check if the character is a letter AND if it is uppercase
                if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar)) {
                    uppercaseCount++;
                    System.out.println("Found uppercase letter: '" + currentChar + "' at index " + i);
                }
            }
    
            System.out.println("Total uppercase letters found: " + uppercaseCount);
        }
    }

    이 코드에서:

    • 정수 변수 uppercaseCount를 0 으로 초기화합니다.
    • 루프 내부에서 if 조건: if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar))를 추가합니다. && 연산자는 "and"를 의미합니다. 이 조건은 Character.isLetter(currentChar)가 true 이고 Character.isUpperCase(currentChar)가 true 인 경우에만 true 입니다.
    • 조건이 true 이면 uppercaseCount를 증가시키고 대문자가 발견되었음을 나타내는 메시지를 출력합니다.
    • 루프가 완료된 후 대문자의 총 개수를 출력합니다.
  3. 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).

  4. 터미널에서 프로그램을 컴파일합니다.

    javac HelloJava.java
  5. 컴파일된 프로그램을 실행합니다.

    java HelloJava

    다음과 유사한 출력을 볼 수 있습니다.

    Counting uppercase letters in the string: "Hello Java 123"
    Found uppercase letter: 'H' at index 0
    Found uppercase letter: 'J' at index 6
    Total uppercase letters found: 2

    이 출력은 프로그램이 소문자, 공백 및 숫자를 무시하고 대문자 ('H'와 'J') 만 올바르게 식별하고 계산했음을 보여줍니다.

요약

이 Lab 에서 우리는 정적 메서드 Character.isUpperCase()를 사용하여 Java 에서 문자가 대문자인지 확인하는 방법을 배웠습니다. 이 메서드는 단일 문자를 입력으로 받아 문자가 대문자인지 여부를 나타내는 부울 값을 반환합니다. 간단한 Java 프로그램을 사용하여 사용법을 시연하고, 대문자, 소문자 및 문자 이외의 문자로 테스트하여 반환된 부울 결과를 관찰했습니다.