https://programmers.co.kr/learn/courses/30/lessons/12951
문제를 풀때 공백이 길던 짧던 공백을 기준으로 다음 처음 문자열을 대문자로 바꿔주면된다.
이때 숫자를 toUpperCase() 해도 그대로 이기때문에 신경쓰지않아도 된다.
즉 처음 받는 문자열을 소문자로 받아준다음에 공백다음에 오는 첫문자만 대문자로 바꿔주면된다.
현재값이 공백인지 확인하기 위해서 boolean 변수를 하나 둔다음에 문제를 풀어나가면된다.
class Solution {
public String solution(String s) {
String answer = "";
s = s.toLowerCase();
//처음에 true 로하는 이유는 처음오는 문자를 무조건 대문자로 바꾸기위해서
boolean isUpper = true;
for(int i = 0; i < s.length(); i++) {
// 공백이면 공백을 문자열에 추가해주고 다음에 올 문자는 대문자로 바꿔줘야 하기때문에
// isUpper 변수를 true로 바꿔준다.
if(s.charAt(i) == ' ') {
isUpper = true;
answer+=' ';
}else {
// 공백다음에 오는 문자이기때문에 대문자로 바꿔준다 그리고 다음 공백이 오기전까지는
// 나머지 문자열들을 소문자로 처리해야하기 때문에 isUpper 을 false 로바꿔준다.
// String.valueOf() 안에 char 문자를 넣어주면 String 으로 바꿔주기 때문에
// toUpperCase 를 적용할 수 있다.
answer += isUpper ? String.valueOf(s.charAt(i)).toUpperCase() : s.charAt(i);
isUpper = false;
}
}
return answer;
}
}
'프로그래머스' 카테고리의 다른 글
프로그래머스_배달_자바 (0) | 2020.06.16 |
---|---|
프로그래머스_후보키_자바 (0) | 2020.06.14 |
프로그래머스_베스트앨범_자바 (0) | 2020.06.03 |
프로그래머스_자물쇠와 열쇠_자바 (0) | 2020.06.01 |
프로그래머스_종이접기_자바 (0) | 2020.05.26 |