프로그래머스 - JadenCase 문자열 만들기

권권·2023년 5월 9일
0

Java 예제🛒

목록 보기
14/14
post-thumbnail

프로그래머스 - JadenCase 문자열 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12951
String 문자열 조작 및 케이스 생각 문제

접근방법
1. split(" ") 를 활용해서 배열을 만들어줌
split(" ")으로 나눠주면 배열의 형식은 띄어쓰기가 있는 곳을 비어있는 배열로 배정하여 진행함 ex) String s = " abc" 일때 split(" ")을 진행하면 [, , , abc] 가 나온다.
2. 케이스들을 생각해줘야했다. 띄어쓰기만 계속 나오는 케이스, 문자의 마지막이 띄어쓰기로 끝날 케이스..

코드

class Solution {
    public String solution(String s) {
        String answer = "";
        // 케이스들을 생각해야하는 문제
        // 공백이 여러번 나올 케이스
        // 마지막이 공백이 될 케이스
        // 다 자른 다음에 넣어줌
        String arr[] = s.split(" ");
        
        for(int i = 0 ; i < arr.length ; i++){

            // 공백이 왔을 때, 추가해줄 것             
            if(arr[i].length() == 0){
                answer += " ";
            } else {
                            
            // 일반적인 추가 
                arr[i] = arr[i].substring(0,1).toUpperCase() + arr[i].substring(1,arr[i].length()).toLowerCase() + " ";
                answer += arr[i];
            }

        }
                    // 처음 문자에 마지막에 띄어쓰기가 있었을 경우
            if(s.substring(s.length()-1, s.length()).equals(" ")){
                return answer;
            } else {
                return answer.substring(0, answer.length()-1);
            }
        

    }
}

일단 split(" ") 이 배열로 어떻게 저장되는지 다시 확인해볼 필요가 있었다. 나는 띄어쓰기 부분을 제외하고 저장이 된다고 생각했었는데, 띄어쓰기 부분은 빈 문자열로 저장이 되는 방식이었다. 유념하기.

그리고 케이스에 대한 부분을 생각하였을 때, 내가 빈 문자열을 마주칠 때 (띄어쓰기 였던 부분을 split) 띄어쓰기를 answer에 추가해줘야하는 부분이 1번, 원래 문자열 s가 마지막에 띄어쓰기를 가지고 있는 케이스가 2번이다.

1번은 arr[i]의 길이가 0 일 때에 answer (String) 에 공백을 더해줬다.

2번은 만약에 원래 문자열의 마지막 글자가 " "인 경우 그대로 리턴을 해주었고, 그게 아니라면 연산 중에 공백이 추가되었으므로 그 공백 이전까지를 리턴해주었다.

profile
안녕하세요

0개의 댓글