[설명]
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
[입력]
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
[출력]
첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.
[예시]
[문제 풀이]
import java.util.Scanner;
public class Main {
public String solution(String str) {
String answer = "";
for (char x : str.toCharArray()) { // 문자열을 char 타입 배열로 변경
if (Character.isLowerCase(x)) { // 소문자 일시
answer += Character.toUpperCase(x); // 대문자로 변경
} else {
answer += Character.toLowerCase(x); // 소문자로 변경
}
// if (x >= 97 && x <= 122) { // 아스키 코드를 이용한 방법
// answer += (char) (x - 32);
// } else {
// answer += (char) (x + 32);
// }
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
Scanner
를 이용해서 kb
변수를 선언하고, 입력받은 문자를 str
변수에 저장한다.Main
클래스에서 String
타입 변수 answer
을 선언하고 초기화한다.for
문을 이용해서 문자열의 전체 원소를 반복해서 탐색한다.x
에 대입하고, 문자열이 아닌 char
타입의 ‘문자’이므로 Character
클래스의 isLowerCase()
를 사용해서 소문자 인지 판별한다.
true
, 틀리면 false
를 반환한다.