class Solution {
//소문자 97~ 122
//대문자 65~ 90 A to Z
public String solution(String s) {
String answer ="";
s = s.toLowerCase();
char[] c = s.toCharArray();
//첫글자를 대문자로
if(c[0]<=122 && c[0]>=97){
int x =c[0];
x = x-32; //대문자로 바꿈
c[0] = (char)x;
}
//나머지 문자를 계산하기
boolean flag = false;
for(int i=0; i< c.length; i++){
if(c[i] ==' '){
flag = true;
}else if(flag&& c[i]<=122 && c[i] >=97){//공백 다음 문자에 도달한 경우
flag = false;
int x = c[i];
x =x-32;
c[i] =(char)x;
}else flag = false;
}
return new String(c);
}
}
//나머지 문자를 계산하기
boolean flag = false;
for(int i=0; i< c.length; i++){
if(c[i] ==' '){
flag = true;
}else if(flag&& c[i]<=122 && c[i] >=97){//공백 다음 문자에 도달한 경우
flag = false;
int x = c[i];
x =x-32;
c[i] =(char)x;
}else flag = false;
}
문자열을 쪼개고 공백이 나타났을때 flag를 True로 변경한다.
flag가 true이면서 소문자 범위에 있는 애들은 대문자로 변경해야할 애들이다.
그래서 대문자로 변경해줌
flag가 true인데 소문자 범위에 있지 않은 애들도 있다. 얘네는 숫자의 경우 이런 경우는 대문자로 변경할 수 없으니 flag를 false로 지정한다.
코드는 잘 짯으나 엣지케이스를 잘 못짯다 ㅋ ㅠㅠ