[프로그래머스] JadenCase 문자열 만들기 / Level 2 / Java

알재·2023년 5월 8일
0

코딩 테스트

목록 보기
27/39

링크

문제링크

문제

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

제한사항

  • s는 길이 1 이상 200 이하인 문자열입니다.
  • s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
    • 숫자는 단어의 첫 문자로만 나옵니다.
    • 숫자로만 이루어진 단어는 없습니다.
    • 공백문자가 연속해서 나올 수 있습니다.

입출력

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

해결

첫글자인지 아닌지 판별하는 isFirstAlphabet 을 선언한다.
문자열 s를 탐색하면서 소문자이면서 첫글자일경우 대문자로, 대문자이면서 첫글자가 아닐경우 소문자로, 공백일경우 isFirstAlphabet을 true로 나머지경우는 isFirstAlphabet을 false로 해준다.

코드

class Solution {
    public String solution(String s) {
        String answer = "";
        
        boolean isFirstAlphabet = true;

        for (char ch : s.toCharArray()) {
            if ('a' <= ch && ch <= 'z' && isFirstAlphabet) {
                ch = Character.toUpperCase(ch);
                isFirstAlphabet = false;
            } else if ('A' <= ch && ch <= 'Z' && !isFirstAlphabet) {
                ch = Character.toLowerCase(ch);
            } else if (ch == ' ') {
                isFirstAlphabet = true;
            } else {
                isFirstAlphabet = false;
            }
            answer += ch;
        }
        
        return answer;
    }
}
profile
저장소

0개의 댓글