Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 문자열의 각 단어 첫 글자를 대문자로 변환하는 프로그램 만들기


이 글에서는 Java에서 문자열의 각 단어 첫 글자를 대문자로 변환하는 방법을 살펴봅니다. 문자열(String)은 하나 이상의 문자로 구성되며 큰따옴표(" ")로 감싸 표현하는 데이터 타입입니다.

먼저 입력값과 기대 출력값을 통해 프로그램의 동작 방식을 확인해 보겠습니다.

입력값

Input string: java program

기대 출력값

The string after capitalizing the first letter is: Java program

알고리즘

Step 1 - 시작
Step 2 - input_string, first_letter, remaining_letters 세 개의 문자열 변수를 선언합니다.
Step 3 - 변수 값을 정의합니다.
Step 4 - substring()으로 첫 글자를 추출한 뒤 toUpperCase()로 대문자로 변환하고, 나머지 문자열과 연결(concat)합니다.
Step 5 - 결과를 출력합니다.
Step 6 - 종료

예제 1 – main 메서드에서 처리하기

이 예제에서는 모든 연산을 main 메서드 안에서 한 번에 수행합니다. 로직이 간단할 때 빠르게 결과를 확인할 수 있는 방식입니다.

public class Capitalize {
    public static void main(String[] args) {
        String input_string = "java program";
        System.out.println("The string is defined as: " + input_string);
        String first_letter = input_string.substring(0, 1);
        String remaining_letters = input_string.substring(1, input_string.length());
        first_letter = first_letter.toUpperCase();
        input_string = first_letter + remaining_letters;
        System.out.println("The string after capitalizing the first letter is: " + input_string);
    }
}

출력 결과

The string is defined as: java program
The string after capitalizing the first letter is: Java program

예제 2 – 객체 지향 방식으로 구현하기

이번에는 대소문자 변환 로직을 별도의 메서드로 분리하여 객체 지향 프로그래밍 스타일로 작성했습니다. 이렇게 하면 코드 재사용성이 높아지고 가독성도 크게 개선됩니다.

public class Capitalize {
    public static String capitalize_letter(String input_string){
        String first_letter = input_string.substring(0, 1);
        String remaining_letters = input_string.substring(1, input_string.length());
        first_letter = first_letter.toUpperCase();
        input_string = first_letter + remaining_letters;
        return input_string;
    }
    public static void main(String[] args) {
        String input_string = "java program";
        System.out.println("The string is defined as: " + input_string);
        String result = capitalize_letter(input_string);
        System.out.println("The string after capitalizing the first letter is: " + result);
    }
}

출력 결과

The string is defined as: java program
The string after capitalizing the first letter is: Java program

응용 – 여러 단어의 첫 글자를 모두 대문자로 변환하기

앞선 예제는 문자열 전체에서 맨 앞 글자 하나만 변환했습니다. "java program tutorial"처럼 여러 단어가 포함된 문장이라면 split() 메서드로 공백을 기준으로 문자열을 나눈 뒤, 각 단어에 동일한 로직을 반복 적용하면 됩니다.

public class CapitalizeEachWord {
    public static void main(String[] args) {
        String input_string = "java program tutorial";
        System.out.println("The string is defined as: " + input_string);

        String[] words = input_string.split(" ");
        StringBuilder sb = new StringBuilder();
        for (String word : words) {
            if (!word.isEmpty()) {
                sb.append(Character.toUpperCase(word.charAt(0)))
                  .append(word.substring(1))
                  .append(" ");
            }
        }
        System.out.println("Result: " + sb.toString().trim());
    }
}

출력 결과

The string is defined as: java program tutorial
Result: Java Program Tutorial

마무리

지금까지 Java에서 문자열의 첫 글자를 대문자로 변환하는 두 가지 방식을 살펴보았습니다. substring()toUpperCase()만으로도 간단히 구현할 수 있으며, split()과 반복문을 조합하면 문장 전체의 각 단어에도 적용할 수 있습니다. 이러한 기법은 게시글 제목 포맷팅, 사용자 입력 데이터 정규화 등 실무에서 다양하게 활용되니 상황에 맞는 방식을 선택해 적용해 보시기 바랍니다.