대소문자 변환
문제
설명
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
입력
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다. 문자열은 영어 알파벳으로만 구성되어 있습니다.
출력
첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.
예시 입력 1
StuDY
해결방법
String을 Char[] 배열로
str.toCharArray();
캐릭터의 대소문자 변환
Character.isUpperCase(char a);
Character.isLowerCase(char a);
Character.toUpperCase(char a);
Character.toLowerCase(char a);
ASCII 참고!
대문자 아스키와 소문자 아스키는 서로 ‘32’ 차이가 난다.
따라서, 소문자인 경우 -32를 하면 대문자가 대문자인 경우 +32를 하면 소문자가 된다.
- 대문자 : 65 ~ 90
- 소문자 : 97 ~ 122
코드
- upper/lower case 메소드로 변환하여 해결하는 경우
import java.util.*; class Main { public String solution(String str) { String answer = ""; for (char x : str.toCharArray()) { if (Character.isLowerCase(x)) answer += Character.toUpperCase(x); else answer += Character.toLowerCase(x); } return answer; } public static void main(String[] args) { Main.Main T = new Main.Main(); Scanner kb = new Scanner(System.in); String str = kb.next(); System.out.print(T.solution(str)); } }
ASCII 코드를 이용하여 해결하는 경우
import java.util.*; class Main { public String solution(String str){ String answer=""; for(char x : str.toCharArray()){ if(x>=97 && x<=122) answer+=(char)(x-32); else answer+=(char)(x+32); } return answer; } public static void main(String[] args){ Main.Main T = new Main.Main(); Scanner kb = new Scanner(System.in); String str=kb.next(); System.out.print(T.solution(str)); } }