어제 오늘 내일

[Java] 문자열 각 단어 첫글자 대문자로, 나머지는 소문자로 변환하기 본문

IT/Java

[Java] 문자열 각 단어 첫글자 대문자로, 나머지는 소문자로 변환하기

hi.anna 2021. 4. 27. 10:05

 

지난번에는 문자열의 첫글자를 대문자로, 나머지 글자는 소문자로 변환하는 방법을 알아보았습니다.

[Java] 문자열 첫글자 대문자로, 나머지 글자는 소문자로 변환하기

 

이번에는 문자열에 공백으로 구분된 여러 단어가 있을 경우,

각 단어의 첫글자를 대문자로, 나머지는 소문자로 변경하는 방법입니다.

(여기서 단어란, 단순하게 space로 구분된 문자열을 말합니다.)

 

ex)

"nice to mEET you" => "Nice To Meet You"

 

 

문자열의 각 단어의 첫글자는 대문자로, 나머지 글자는 소문자로 변환하기

다음과 같은 순서로 진행합니다.

 

1. 문자열을 공백(White Space)로 자르기 (split())

2. 각 단어별로 

    2.1. 첫글자와 글자 자르기 (substring())

    2.2. 첫글자 제외한 나머지 문자열 자르기 (substring())

    2.3. 첫글자 대문자로 변환 (toUpperCase())

    2.4. 나머지 문자열 소문자로 변환 (toLowerCase())

    2.5. 첫글자(대문자)와 나머지 문자열(소문자) 이어 붙이기

 

 

  코드  

public class EveryWordCapitalizeFirstLetter {
    public static void main(String[] args) {
        String str = "nice to mEET you";

        // 1. 문자열 공백(white space)으로 자르기
        String words[] = str.split("\\s");

        String result = "";

        // 2. 각 단어별로
        for (String word : words) {
            String capitalizedWord = capitalizeFirstLetter(word);
            result += capitalizedWord + " ";
        }

        System.out.println(result);
    }

    static String capitalizeFirstLetter(String str) {

        // 2.1. 첫번째 글자 substring
        String firstLetter = str.substring(0, 1);

        // 2.2 첫번째 글자를 제외한 나머지 글자 substring
        String remainLetter = str.substring(1);

        // 2.3. 첫번째 글자를 대문자로 변환
        firstLetter = firstLetter.toUpperCase();

        // 2.4. 나머지 글자를 소문자로 변환
        remainLetter = remainLetter.toLowerCase();

        // 2.5. 첫번째 글자(대문자) + 나머지 글자(소문자)
        String result = firstLetter + remainLetter;

        return result;
    }
}

 

  결과  

Nice To Meet You 

 

코드를 보면

capitalizeFirstLetter() 메소드의 내용은

지난 포스팅에서 다루었던

문자열의 첫글자를 대문자로, 나머지 문자열을 소문자로 바꾸는 코드와 동일합니다.

[Java] 문자열 첫글자 대문자로, 나머지 글자는 소문자로 변환하기

차이점은,

이번 예제는,

main() 함수에서, 공백으로 문자열을 분리하고(split()),

반복문을 이용해서, 각 문자열을 capitalizeFirstLetter() 메소드의 파라미터로 넘겨주었다는 점입니다.

 


 

java.lang.String 클래스의 split(), substring(), toUpperCase(), toLowerCase() 메소드를 이용하여

문장 안의 단어 첫글자를 대문자로 변환해 보았습니다.

 

 

반응형
Comments