본문 바로가기
코딩 테스트/[JAVA] programmers 코딩 테스트 연습

[Programmers/JAVA] JadenCase 문자열 만들기 / 프로그래머스 코딩 테스트 연습

by M개발자 2021. 12. 21.
반응형

JadenCase 문자열 만들기

 


문제 설명

 

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.


예시

 

s return
"3people unFollowed me" "3people Unfollowed Me"
"for the last week" "For The Last Week"

 


Flow

 

1.split() 메소드 이용하여 공백을 기준으로 문자열 자르기

2. 자른 단어 수(sp.length)만큼 for문 반복

3-1. (단어가 들어간) 배열 요소가 공백일 경우 answer에 공백 붙이기

3-2. 단어 첫글자는 대문자로 변환, 대문자를 제외한 문자들은 소문자로 변환하여 answer에 붙이기

4. 원래 문자열 s의 마지막이 공백일 경우 answer 반환

4-2. 단어를 붙일 때 마지막에 공백을 함께 붙여 마지막 공백을 제외하고 반환

 

참고 자료

split()

String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나누는 메소드

String string = "1.2.3.4.5";
String[] sp = string.split("."); //{"1", "2", "3", "4", "5"}
//문자열을 .을 기준으로 나눔

 

toUpperCase() / toLowerCase()

toUpperCase()  문자열을 대문자로 변환하는 메소드

toLowerCase()  문자열을 소문자로 변환하는 메소드

String str = "AbCdEf";
System.out.println(str.toUpperCase()); // ABCDEF
System.out.println(str.toLowerCase()); // abcdef

 

substring(begin, end)

문자열을 begin부터 end - 1까지 자르는 메소드

String str = "HelloWorld";
System.out.println(str.substring(0, 5); // Hello

 

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] sp = s.split(" "); // 공백을 기준으로 문자열 자르기
        
        // 공백을 기준으로 잘려진 문자열의 수만큼 반복
        for(int i = 0; i < sp.length; i++){
            if(sp[i].length() == 0) answer += " "; // 단어가 공백일 경우 반환값에 공백 더하기
            else{
                answer += sp[i].substring(0, 1).toUpperCase(); // 단어 첫번째 대문자로 변환하여 더하기
                answer += sp[i].substring(1, sp[i].length()).toLowerCase(); // 첫글자를 제외하고 소문자로 변환하여 더하기
                answer += " "; // 띄어쓰기
            }
            
        }
        
        //원래 문자열 마지막이 공백일 경우 그대로 answer 반환
        if(s.substring(s.length() -1, s.length()).equals(" ")) return answer;
        //마지막에 공백이 더해져서 그 공백을 제외한 answer값 반환
        return answer.substring(0, answer.length() - 1);
    }
}

github

programmers

 

반응형

댓글