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;
}
가치 있는 정보 공유해주셔서 감사합니다.