| 문제 | 레벨 | 정답률 |
|---|---|---|
| 이상한 문자 만들기 | Lv.1 | 76% |

class Solution {
public String solution(String s) {
String result = "";
int j = 1;
for(int i = 0; i<s.length(); i++){
char c = s.charAt(i);
//공백이 오면 j를 reset
if(c == ' '){
j = 1;
result += " ";
continue;
}
if(j % 2 == 1 && c >= 'a' && c<='z'){
c = Character.toUpperCase(c);
} else if(j % 2 == 0 && c >= 'A' && c<='Z'){
c = Character.toLowerCase(c);
}
result += c;
j++;
}
return result;
}
}
어제 데일리 실습을 푸는데 문자열은 아스키코드로 쉽게 더하고 뺄 수 있고, 소문자 대문자 체크 역시 아스키코드로 할 수 있다는 걸 알고 한 번 더 풀어봤다.
참고로 isLowerCase(), isUpperCase()로 하게 되면 제대로 판별되지 않는 경우도 있으니 그냥 아스키로 비교하는게 예외를 생각하지 않아도 되어 좋은 것 같다..!
isLowerCase(), isUpperCase()의 경유 유니코드를 기반으로, 아스키는 아스키 값을 기반으로 하기 때문!
따라서 앞의 두 메서드는 소문자, 대문자를 비롯해 다른 언어도 포함하게 되므로 원하는 대로 판별이 안될 수 있음