문자열 대문자화

Java:
문자열 대문자화

방법:

자바의 표준 라이브러리는 문자열 전체를 한 번에 대문자로 만드는 직접적인 방법을 제공하지 않지만, 내장 메소드의 조합을 통해 이를 달성할 수 있습니다. 더 복잡한 요구 사항의 경우, Apache Commons Lang과 같은 제3자 라이브러리가 간단한 해결책을 제공합니다.

자바의 내장 메소드 사용하기

외부 라이브러리 없이 문자열을 대문자로 만들려면 문자열을 단어로 나누고, 각 단어의 첫 글자를 대문자로 만든 다음 다시 합칠 수 있습니다. 다음은 간단한 접근 방식입니다:

public class CapitalizeString {
    public static void main(String[] args) {
        String text = "hello, world!";
        String capitalizedText = capitalizeWords(text);
        System.out.println(capitalizedText); // 출력: "Hello, World!"
    }

    public static String capitalizeWords(String str) {
        char[] chars = str.toLowerCase().toCharArray();
        boolean found = false;
        for (int i = 0; i < chars.length; i++) {
            if (!found && Character.isLetter(chars[i])) {
                chars[i] = Character.toUpperCase(chars[i]);
                found = true;
            } else if (Character.isWhitespace(chars[i]) || chars[i]=='.' || chars[i]=='\'') { 
                found = false;
            }
        }
        return String.valueOf(chars);
    }
}

이 코드 스니펫은 전체 문자열을 소문자로 변환한 다음 각 문자를 반복하면서 각 단어의 첫 글자를 대문자로 만듭니다. 공백, 마침표, 작은따옴표를 단어 구분자로 간주합니다.

Apache Commons Lang 사용하기

Apache Commons Lang 라이브러리는 다양한 예외 사항과 구분자를 처리하는 WordUtils.capitalizeFully() 메소드로 더 우아한 해결책을 제공합니다:

// 의존성 추가: org.apache.commons:commons-lang3:3.12.0

import org.apache.commons.text.WordUtils;

public class CapitalizeString {
    public static void main(String[] args) {
        String text = "hello, world!";
        String capitalizedText = WordUtils.capitalizeFully(text);
        System.out.println(capitalizedText); // 출력: "Hello, World!"
    }
}

이 메소드를 사용하려면 Apache Commons Lang 라이브러리를 프로젝트에 추가해야 합니다. 이 라이브러리 메소드는 각 단어의 첫 글자를 대문자로 만들 뿐만 아니라, 각 단어의 나머지 글자를 소문자로 변환하여 문자열 전체에 일관된 대문자 패턴을 보장합니다.