PS(Java)/인프런 강의 문제
[PS] 인프런 강의 - 문자열 2. 대소문자 변환
UL :)
2022. 10. 10. 00:28
문제
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
▣ 출력설명
첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.
▣ 입력예제 1
StuDY
▣ 출력예제 1
sTUdy
풀이
알파벳의 아스키코드
A~Z = 65~90
a~z = 97~122
97-65 = 32 차이남
코드
풀이 1)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.next();
char[] c = s.toCharArray();
//대문자 <-> 소문자
for(int i=0; i<c.length; i++) {
if(Character.isUpperCase(c[i])) {
c[i] = Character.toLowerCase(c[i]);
}
else c[i] = Character.toUpperCase(c[i]);
}
System.out.print(c);
}
}
풀이 2) 아스키 코드 사용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.next();
String answer = "";
//대문자 <-> 소문자
for(char x : s.toCharArray()) {
if(x >= 97 && x<= 122) answer += (char)(x-32);
else answer+= (char)(x+32);
}
System.out.print(answer);
}
}