Java 에서 문자를 소문자로 변환하기

JavaBeginner
지금 연습하기

소개

Java 프로그래밍에서 toLowerCase(char ch) 메서드는 주어진 문자 인수를 소문자로 변환하는 데 사용됩니다. 이 메서드는 Java 의 Character 클래스에 속하며, 유니코드 데이터 파일에서 제공하는 대소문자 매핑 정보를 사용합니다. 이 기능은 대소문자 정규화가 필요한 텍스트를 처리할 때 특히 유용합니다.

이 Lab 에서는 Java 프로그램에서 toLowerCase(char ch) 메서드를 사용하는 방법을 배우게 됩니다. 문자를 소문자로 변환하는 간단한 애플리케이션을 만들고, 사용자 입력 및 오류 처리 기능을 추가하여 개선할 것입니다.

첫 번째 문자 변환 프로그램 만들기

이 단계에서는 Java 의 Character 클래스의 toLowerCase(char ch) 메서드를 사용하여 문자를 소문자로 변환하는 방법을 보여주는 Java 프로그램을 만들 것입니다.

문자 대소문자 변환 이해

Java 에서 문자는 기본 데이터 타입 char로 표현됩니다. Character 클래스는 대문자와 소문자 간의 변환 기능을 포함하여 문자를 조작하고 작업하는 다양한 메서드를 제공합니다.

toLowerCase(char ch) 메서드는 문자를 입력으로 받아 다음을 수행합니다.

  • 대문자였던 경우 문자의 소문자 버전을 반환합니다.
  • 이미 소문자이거나 문자가 아닌 경우 동일한 문자를 반환합니다.

Java 파일 만들기

먼저, 프로젝트 디렉토리에 새 Java 파일을 만들어 보겠습니다.

  1. WebIDE 편집기 창을 엽니다.
  2. 파일 메뉴로 이동하여 "새 파일"을 클릭합니다.
  3. 파일 이름을 CharacterToLowerCase.java로 지정하고 /home/labex/project 디렉토리에 저장합니다.

또는 터미널을 사용하여 파일을 만들 수 있습니다.

cd ~/project
touch CharacterToLowerCase.java

첫 번째 프로그램 작성

이제 CharacterToLowerCase.java 파일에 코드를 작성해 보겠습니다.

  1. WebIDE 편집기에서 파일을 엽니다.
  2. 다음 코드를 복사하여 파일에 붙여넣습니다.
public class CharacterToLowerCase {
    public static void main(String[] args) {
        // Create character variables with different cases
        char upperCaseChar = 'A';
        char lowerCaseChar = 'b';
        char nonLetterChar = '5';

        // Convert each character to lowercase
        char result1 = Character.toLowerCase(upperCaseChar);
        char result2 = Character.toLowerCase(lowerCaseChar);
        char result3 = Character.toLowerCase(nonLetterChar);

        // Print the original and lowercase characters
        System.out.println("Original uppercase character: " + upperCaseChar);
        System.out.println("After toLowerCase(): " + result1);
        System.out.println();

        System.out.println("Original lowercase character: " + lowerCaseChar);
        System.out.println("After toLowerCase(): " + result2);
        System.out.println();

        System.out.println("Original non-letter character: " + nonLetterChar);
        System.out.println("After toLowerCase(): " + result3);
    }
}

이 프로그램은 세 가지 유형의 문자를 사용하여 toLowerCase(char ch) 메서드를 시연합니다.

  • 대문자 ('A')
  • 소문자 ('b')
  • 문자 아닌 문자 ('5')

프로그램 컴파일 및 실행

이제 Java 프로그램을 컴파일하고 실행해 보겠습니다.

  1. WebIDE 에서 터미널을 엽니다.

  2. 아직 해당 디렉토리에 있지 않은 경우 프로젝트 디렉토리로 이동합니다.

    cd ~/project
  3. Java 파일을 컴파일합니다.

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

    java CharacterToLowerCase

다음 출력을 볼 수 있습니다.

Original uppercase character: A
After toLowerCase(): a

Original lowercase character: b
After toLowerCase(): b

Original non-letter character: 5
After toLowerCase(): 5

보시다시피 대문자 'A'는 소문자 'a'로 변환되었고, 이미 소문자인 'b'와 문자 아닌 문자 '5'는 변경되지 않았습니다.

사용자 입력을 활용하여 프로그램 개선하기

이 단계에서는 사용자 입력을 수락하도록 프로그램을 개선할 것입니다. 미리 정의된 문자를 사용하는 대신, 프로그램은 사용자에게 문자를 입력하라는 메시지를 표시한 다음 소문자로 변환합니다.

Scanner 클래스 이해

Java 에서 사용자 입력을 받으려면 java.util 패키지의 Scanner 클래스를 사용합니다. Scanner 클래스는 표준 입력 (키보드) 을 포함한 다양한 소스에서 다양한 유형의 입력 데이터 (정수, double, 문자열 등) 를 읽는 메서드를 제공합니다.

Scanner 클래스를 사용하는 방법은 다음과 같습니다.

  1. import java.util.Scanner;를 사용하여 클래스를 가져옵니다.
  2. Scanner scanner = new Scanner(System.in);으로 Scanner 객체를 생성합니다.
  3. next(), nextInt() 등의 메서드를 사용하여 입력을 읽습니다.

프로그램 수정

사용자 입력을 받도록 프로그램을 수정해 보겠습니다.

  1. WebIDE 편집기에서 CharacterToLowerCase.java 파일을 엽니다.
  2. 기존 코드를 다음 코드로 바꿉니다.
import java.util.Scanner;

public class CharacterToLowerCase {
    public static void main(String[] args) {
        // Create a Scanner object to read user input
        Scanner scanner = new Scanner(System.in);

        // Prompt the user to enter a character
        System.out.print("Enter a character: ");

        // Read the first character of the input
        String input = scanner.next();
        char userChar = input.charAt(0);

        // Convert the character to lowercase
        char lowerCaseChar = Character.toLowerCase(userChar);

        // Print the original and lowercase characters
        System.out.println("Original character: " + userChar);
        System.out.println("Lowercase character: " + lowerCaseChar);

        // Close the scanner
        scanner.close();
    }
}

이 코드의 주요 변경 사항은 다음과 같습니다.

  • Scanner 클래스를 가져옵니다.
  • 콘솔에서 입력을 읽기 위해 Scanner 객체를 생성합니다.
  • 사용자에게 문자를 입력하라는 메시지를 표시합니다.
  • 입력을 문자열로 읽은 다음 첫 번째 문자를 추출합니다.
  • 문자를 소문자로 변환하고 원래 문자와 소문자 문자를 모두 표시합니다.
  • 리소스를 해제하기 위해 스캐너를 닫습니다.

수정된 프로그램 컴파일 및 실행

수정된 프로그램을 컴파일하고 실행해 보겠습니다.

  1. WebIDE 에서 터미널을 엽니다.

  2. 아직 해당 디렉토리에 있지 않은 경우 프로젝트 디렉토리로 이동합니다.

    cd ~/project
  3. Java 파일을 컴파일합니다.

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

    java CharacterToLowerCase
  5. 메시지가 표시되면 문자를 입력 (예: 'Z') 하고 Enter 키를 누릅니다.

다음과 유사한 출력을 볼 수 있습니다 ( 'Z'를 입력했다고 가정).

Enter a character: Z
Original character: Z
Lowercase character: z

소문자, 대문자 및 문자 아닌 문자를 사용하여 프로그램이 어떻게 작동하는지 확인하려면 다른 문자를 입력해 보십시오.

오류 처리 및 유효하지 않은 입력 처리

이전 단계에서 사용자가 유효한 문자를 입력하면 프로그램이 잘 작동했습니다. 그러나 사용자가 빈 문자열을 입력하거나 입력을 읽는 데 다른 문제가 있는 경우 프로그램이 예외와 함께 충돌할 수 있습니다. 이 단계에서는 잠재적인 오류와 잘못된 입력을 처리하도록 프로그램을 개선할 것입니다.

Java 의 예외 처리 이해

Java 의 예외 처리는 try-catch 블록을 사용하여 수행됩니다.

  • 예외를 발생시킬 수 있는 코드는 try 블록에 배치됩니다.
  • 예외를 처리하는 코드는 catch 블록에 배치됩니다.
  • 예외 유형을 지정하여 특정 예외를 잡을 수 있습니다.

오류를 처리하도록 프로그램 수정

잠재적인 오류를 처리하도록 프로그램을 수정해 보겠습니다.

  1. WebIDE 편집기에서 CharacterToLowerCase.java 파일을 엽니다.
  2. 기존 코드를 다음 코드로 바꿉니다.
import java.util.Scanner;

public class CharacterToLowerCase {
    public static void main(String[] args) {
        // Create a Scanner object to read user input
        Scanner scanner = new Scanner(System.in);

        // Continue until valid input is received
        boolean validInput = false;

        while (!validInput) {
            try {
                // Prompt the user to enter a character
                System.out.print("Enter a character: ");

                // Read the first character of the input
                String input = scanner.next();
                if (input.isEmpty()) {
                    System.out.println("Error: Empty input. Please enter a character.");
                    continue;
                }

                char userChar = input.charAt(0);

                // Convert the character to lowercase
                char lowerCaseChar = Character.toLowerCase(userChar);

                // Print the original and lowercase characters
                System.out.println("Original character: " + userChar);
                System.out.println("Lowercase character: " + lowerCaseChar);

                // If a character is already lowercase or is not a letter, explain the result
                if (userChar == lowerCaseChar) {
                    if (Character.isLetter(userChar)) {
                        System.out.println("Note: The character was already lowercase.");
                    } else {
                        System.out.println("Note: The character is not a letter, so it remains unchanged.");
                    }
                }

                validInput = true;  // Exit the loop

            } catch (Exception e) {
                // Handle any exceptions that might occur
                System.out.println("Error: Invalid input. Please try again.");
                scanner.nextLine();  // Clear the input buffer
            }
        }

        // Close the scanner
        scanner.close();
    }
}

이 코드의 주요 변경 사항은 다음과 같습니다.

  • 유효한 입력을 받을 때까지 입력을 계속 요청하는 루프를 추가했습니다.
  • 잠재적인 예외를 처리하기 위해 try-catch 블록을 추가했습니다.
  • 입력이 비어 있는지 확인합니다.
  • 특정 문자가 변경되지 않는 이유에 대한 추가 정보를 추가했습니다.
  • 잘못된 입력의 경우 입력 버퍼를 지웁니다.

최종 프로그램 컴파일 및 실행

향상된 프로그램을 컴파일하고 실행해 보겠습니다.

  1. WebIDE 에서 터미널을 엽니다.

  2. 아직 해당 디렉토리에 있지 않은 경우 프로젝트 디렉토리로 이동합니다.

    cd ~/project
  3. Java 파일을 컴파일합니다.

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

    java CharacterToLowerCase

다양한 시나리오를 테스트해 보겠습니다.

  1. 대문자를 입력합니다 (예: 'A').

    Enter a character: A
    Original character: A
    Lowercase character: a
  2. 소문자를 입력합니다 (예: 'a').

    Enter a character: a
    Original character: a
    Lowercase character: a
    Note: The character was already lowercase.
  3. 문자 아닌 문자를 입력합니다 (예: '5').

    Enter a character: 5
    Original character: 5
    Lowercase character: 5
    Note: The character is not a letter, so it remains unchanged.
  4. 문자를 입력하지 않고 Enter 키를 누르거나 잘못된 입력을 입력해 보십시오.

    Enter a character:
    Error: Invalid input. Please try again.
    Enter a character:

이제 프로그램은 다양한 입력 시나리오를 적절하게 처리하여 사용자에게 유용한 피드백을 제공합니다.

요약

이 랩에서는 Java 에서 문자를 소문자로 변환하기 위해 toLowerCase(char ch) 메서드를 사용하는 방법을 배웠습니다. 다음은 수행한 작업에 대한 요약입니다.

  1. toLowerCase(char ch) 메서드를 사용하여 문자 대소문자 변환을 보여주는 기본적인 Java 프로그램을 만들었습니다.

  2. Scanner 클래스를 사용하여 사용자 입력을 받도록 프로그램을 개선하여 사용자가 변환할 문자를 직접 입력할 수 있도록 했습니다.

  3. try-catch 블록을 사용하여 오류 처리를 추가하여 잘못된 입력을 적절하게 처리함으로써 프로그램의 견고성을 향상시켰습니다.

  4. toLowerCase(char ch) 메서드에 전달될 때 특정 문자가 변경되지 않는 이유를 설명하는 정보를 추가했습니다.

이러한 기술은 Java 프로그래밍의 기본이며 다음과 같은 많은 실제 시나리오에 적용할 수 있습니다.

  • 텍스트 처리 및 정규화
  • 양식 유효성 검사
  • 검색 기능 (대소문자 구분 없는 검색)
  • 데이터 정리 및 준비

Java 학습 여정을 계속 진행하면서 Character 클래스가 isLetter(), isDigit(), isUpperCase(), isLowerCase() 등과 같이 문자를 처리하는 데 유용한 다른 많은 메서드를 제공한다는 것을 기억하십시오.