728x90
class Solution {
public String solution(String my_string) {
String answer = "";
for(int i=0; i<my_string.length(); i++){
if(Character.isLowerCase(my_string.charAt(i)))
answer+=Character.toUpperCase(my_string.charAt(i));
else answer+=Character.toLowerCase(my_string.charAt(i));
}
return answer;
}
}
대문자를 소문자로 소문자를 대문자로 바꾸기 위해서 isLowerCase()메서드를 이용해
소문자면 true가 반환되서 해당 문자를 toUpperCase()메서드로 대문자로 변환한 뒤 answer문자열에 붙여주고
반대로 false가 반환되면 대문자이므로 toLowerCase()메서드로 소문자로 변환한 뒤 answer문자열에 붙여준다.
위와 같은 메소드를 사용하지 않고 아스키코드 값을 이용해서 문제를 풀 수도 있다.
char변수는 실제 문자가 아닌 해당 문자의 '정수'를 가지고 있기 때문에 그 성질을 이용해서
소문자 'a'는 97, 대문자 'A'는 65 인 것을 이용해서 문제를 풀어보자
class Solution {
public String solution(String my_string) {
String answer = "";
for(int i=0; i<my_string.length(); i++){
if(my_string.charAt(i)>=97) //97보다 크면 'a'소문자
answer+=(char)(my_string.charAt(i)-32); //대문자 'A'는 65여서 32를 빼준다.
else
answer+=(char)(my_string.charAt(i)+32); //대문자가 입력된거라 32를 더해서 소문자로
} //변환해준다.
return answer;
}
}
대신 32를 더하고 빼준 후 (char)으로 형변환 해주는 것 잊지말자!!!
반응형
'CodingTest > Programmers' 카테고리의 다른 글
| [프로그래머스] Lv.0 약수 구하기 (0) | 2022.11.28 |
|---|---|
| [프로그래머스] Lv.0 가장 큰 수 찾기 (1) | 2022.11.28 |
| [프로그래머스] Lv.0 가위바위보 (0) | 2022.11.28 |
| [프로그래머스] Lv.0 세균 증식 (0) | 2022.11.28 |
| [프로그래머스] Lv.0 직각삼각형 출력하기* (0) | 2022.11.28 |
댓글