[프로그래머스] JadenCase 문자열 만들기 (java) 문자열_String
2020-01-15
JadenCase 문자열 만들기 (programers > lev2 > 문자열_String)
문제설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- s는 길이 1 이상인 문자열입니다.
- s는 알파벳과 공백문자(“ “)로 이루어져 있습니다.
- 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )
입출력 예
s | return |
---|---|
3people unFollowed me | 3people Unfollowed Me |
for the last week | For The Last Week |
풀이
static public String solution(String s) {
String a = "";
s = s.toLowerCase();
boolean check = false; // i+1이 문자가 아니라는 뜻
for(int i=0;i<s.length()-1;i++) {
if(s.charAt(i) == ' ') {
if(i==0)
a = a + " ";
//i+1 추가
if(s.charAt(i+1) != ' ' && check==false) {
a = a + String.valueOf(s.charAt(i+1)).toUpperCase();
check=true; //문자가 시작되었다는 뜻
}
else if(s.charAt(i+1) == ' ')
a = a + " ";
}
else{ // 문자인 경우
if(i==0)
a = a + String.valueOf(s.charAt(i)).toUpperCase();
if(s.charAt(i+1) == ' ') {
a = a + " ";
check=false; //다시 첫 문자가 시작될때까지
}
else //다음 글자도 문자인 경우
a = a + String.valueOf(s.charAt(i+1));
}
}//for
return a;
}
후기 (1h)
처음에는 문자열이 공백으로 시작하는 예제를 생각하지 않고 20분만에 풀었다…만.. 오류!!
그래서 공백으로 시작하는 것까지 체크하려면
- 전부 toLowerCase로 만들어놓고
- i와 i+1을 계속 비교해주는 방식으로
- i(현재)가 공백이면 i+1이 1)공백인지 2)공백이 아닌지
- i(현재)가 공백이 아니라면 i+1이 1)공백인지 2)공백이 아닌지
- 총 4가지 if로 구분해주었고 문자가 시작되어 끝나는 것까지 체크해주는 boolean 변수로 마무리!
tip
- 8점이나 받은 문제…! 화우
- Lowercase 와 UpperCase 사용법도 익혀놓자!