본문 바로가기
JAVA/프로그래머스

[Lv.2] 프로그래머스 - JadenCase 문자열 만들기 : Java

by ♡˖GYURI˖♡ 2024. 5. 20.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

이해하기

  • split(" ")으로 String 배열로 변환한 후에
  • for문으로 String 배열을 순회하면서
  • 조건대로 문자열을 변환해서 다시 대입해야지~

하고 풀었다가 실패했다 ㅋㅋ...

 

질문하기를 보니 공백문자가 연속해서 나올 수도 있다는 점을 살피지 못했던 것 같다.

예를 들어 아래와 같이 나오는 경우를 간과한 것이다.

입력값 〉   "  for the what 1what  "
기댓값 〉   "  For The What 1what  "

 

참고한 블로그⬇️

 

[프로그래머스] JadenCase 문자열 만들기(Java)

프로그래머스 JadenCase 문자열 만들기https://school.programmers.co.kr/learn/courses/30/lessons/12951모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열을 만든다.첫 문자가 알파벳이 아닐

velog.io

 

 

문제풀이

class Solution {
    public String solution(String s) {
        StringBuffer sb = new StringBuffer();
        
        String[] arr = s.split(" ");
        
        for (int i = 0; i < arr.length; i++) {
            String now = arr[i];
            
            if (arr[i].length() == 0) {
                sb.append(" ");
            } else {
                sb.append(now.substring(0, 1).toUpperCase());
                sb.append(now.substring(1, now.length()).toLowerCase());
                sb.append(" ");
            }
        }
        
        if (s.substring(s.length() - 1, s.length()).equals(" ")) {
            return sb.toString();
        }
        
        return sb.toString().substring(0, sb.length() - 1);
    }
}

 

  • split(" ")로 String 배열로 만드는 것은 동일
  • arr를 for문으로 순회하면서
    • 만약 길이가 0이면 공백 추가
    • 아니라면
      • 맨 앞 한자리만 대문자로, 나머지는 소문자로 변환하여 추가
      • (숫자여도 상관없는 듯함)
      • 맨 마지막에 잊지 않고 공백 추가!
  • 원래 문자열의 맨 마지막이 " "이라면 그대로 answer 반환
  • 아니라면 마지막 " " 제거 후 반환!