입력받은 문자열을 탐색하면서 대문자일 경우 소문자로 변경하고 소문자일 경우 대문자로 변환하면 된다.
import java.util.*;
public class Main {
public String solution(String str) {
String answer = "";
for(char c : str.toCharArray()){
answer = Character.isUpperCase(c) ? answer.concat(String.valueOf(Character.toLowerCase(c))) : answer.concat(String.valueOf(Character.toUpperCase(c)));
}
return answer;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
Main T = new Main();
System.out.print(T.solution(in.next()));
}
}
삼항연산자를 쓰고싶어 사용했다. 문자를 문자열로 바꾸는 것 때문에 오류가 몇번 났었다.
import java.util.*;
public class Main {
public String solution(String str) {
String answer = "";
for(char c : str.toCharArray()){
if(c>=65 && c<=90)// 대문자
answer += (char)(c+32);
else //소문자
answer += (char)(c-32);
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner in = new Scanner(System.in);
System.out.print(T.solution(in.next()));
}
}
그냥 문자열 붙여도 됐었는데 왜 굳이 concat을 사용했나 감이 좀 떨어졌던 것 같다. 간단하게 아래코드처럼 생각해도 됐었다.
answer += Character.isUpperCase(c) ? Character.toLowerCase(c) : Character.toUpperCase(c);
그리고 오랜만에 아스키 코드를 접했다.