String answer = "";
/*
A = 65
Z = 90
a = 97
z = 122
65 + 32 = 97
90 + 32 = 122
*/
for(char x : str.toCharArray()) {
if(x >= 97 && x <= 122) {
answer += (char) (x - 32); // x가 소문자라면 -32를 빼서 대문자로 바꾼다
} else {
answer += (char) (x + 32); // 대문자라면 + 32를 해서 소문자로 바꾼다
}
}
return answer;
아스키코드를 이용한다.
a = 97
z = 122
A = 65
Z = 90
입력받은 문자열을 char배열로 바꾼 후 한글자씩 비교해서
A와Z사이에 있으면 +32를 해서 대문자로 바꿔준다(A 와 a, Z와 z가 아스키코드로 32 차이. 그래서 32를 더하거나 빼줌)
반대로 a와z 사이에 있으면 -32를 해서 소문자로 바꿔준다
'코딩테스트 > 알고리즘 유형정리' 카테고리의 다른 글
중복문자 제거 (1) | 2021.09.01 |
---|---|
단어 뒤집기 (0) | 2021.08.12 |
문자열에서 같은 문자 찾기 (0) | 2021.08.10 |
댓글