대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.
StuDY sTUdy
import java.util.Scanner;
class Main {
public static String solution(String str) {
char[] charArray = str.toCharArray();
StringBuilder sb = new StringBuilder();
for (char i : charArray) {
if (Character.isUpperCase(i)) {
sb.append(Character.toLowerCase(i));
}
else {
sb.append(Character.toUpperCase(i));
}
}
String answer = sb.toString();
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(solution(str));
}
}
입력받은 str을 char배열로 변환후 각 char별로 대소문자 구분 후 StringBuilder sb에 하나씩 더해주면 된다.
StringBuilder() : 문자열과 문자열을 합칠때 새로운 객체를 생성하지 않고 더하는 방식으로 작동. 그렇기 때문에 속도도 빠르고 메모리도 덜 차지한다. append로 계속 추가했다 문자열을.
.toString : 을 사용해서 StringBuilder sb로 만든 문자열을 변환 후 출력해주었다