JadenCase 문자열 만들기

공부한것 다 기록해·2023년 7월 17일
0

https://school.programmers.co.kr/learn/courses/30/lessons/12951

크게 2부분으로 먼저 나누어 주었다.
문자열의 맨 앞부분, 나머지 부분
우선 맨앞부분은 숫자인 경우와 문자인 경우 2가지 경우로 나뉜다.

String.isDigit() 메서드 : 문자인경우 false, 숫자인 경우 true 반환

문자인지 숫자인지 판별을 해주고, 문자인 경우엔 String의 toUpperCase를 사용해서 대문자로 변경해주고,
flag라는 변수에 1을 할당해주었다.
flag변수는 문자를 추가할때, 추가해도 되는지의 여부에 대해 나타내기 위해 변수를 사용했다.
첫번째 글자가 아닌 다음 글자들은 이전에 띄어씌기가 존재하는 경우 대문자로 변경해주면 된다.

참고로 flag변수를 사용하지 않는 경우
글자가 두번 추가되는 불상사가 발생한다.

public String solution(String s) {
        String answer = "";

        for (int i = 0; i < s.length(); i++) {

            int flag = 0;
            char ch = s.charAt(i);

            if(i == 0){ // 맨 처음 글자
                if(!Character.isDigit(ch)){ // 대문자로
                    answer += String.valueOf(ch).toUpperCase();
                    flag = 1;
                }
            }else{ // 첫번째 다음 글자
                if(s.charAt(i-1) == ' '){
                    answer += String.valueOf(ch).toUpperCase();
                    flag = 1;
                }
            }

            if(flag == 0){
                answer += String.valueOf(ch).toLowerCase();
            }
        }

        return answer;
    }

2개의 댓글

comment-user-thumbnail
2023년 7월 18일

가치 있는 정보 공유해주셔서 감사합니다.

답글 달기
comment-user-thumbnail
2023년 7월 18일

많은 도움이 되었습니다, 감사합니다.

답글 달기