문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.제한 조건
- s는 길이 1 이상인 문자열입니다.
- s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
- 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )
입출력 예
s | return |
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
문제 풀이
class Solution {
public String solution(String s) {
String arr[] = s.toLowerCase().split("");
StringBuilder sb = new StringBuilder();
boolean flag = true;
for(String str : arr){
if(flag){
sb.append(str.toUpperCase());
}else{
sb.append(str);
}
if(" ".equals(str)){
flag = true;
}else{
flag = false;
}
}
return sb.toString();
}
}
- String 배열 arr을 선언하며 입력 값을 모두 소문자로 치환 후 한글자씩 잘라서 배열에 넣는다.
- 답안으로 제출할 StringBuilder 를 생성한다.
- 첫글자와 공백 후 문자는 대문자로 치환해야하기 때문에 이를 구분할 flag 변수를 생성한다.
- foreach 문으로 arr 배열을 돌며 첫번째는 무조건 대문자로 치환한다.
- StringBuilder에 flag 값에 따라 append하며 이후 flag 변수를 true, false로 변환한다.