문제
설명
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
입력
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
출력
첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.
코드
import java.util.Scanner;
public class Main1_2 {
// 대소문자 변환
public String Solution(String str) {
String answer = "";
for(char x : str.toCharArray()){
if(x>=97 && x<=122) answer += (char)(x-32); // 아스키 코드 97:a, 122:z, A:65, Z:90
else answer += (char)(x+32);
}
return answer;
}
public static void main(String[] args) {
Main1_2 T = new Main1_2();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(T.Solution(str));
}
}
결과
알게된 점
1. 아스키 코드
대문자 A to Z는 65번부터 90번까지
소문자 a to z는 97번부터 122번까지
소문자 알파벳의 숫자가 더 크다
대응되는 알파벳 간 숫자 차이는 32
(소문자 a - 대문자 A = 32)
'Algorithm > Inflearn' 카테고리의 다른 글
[Inflearn] 자바 알고리즘 문제풀이 #01-06 6. 중복문자제거 (0) | 2022.10.26 |
---|---|
[Inflearn] 자바 알고리즘 문제풀이 #01-05 5. 특정 문자 뒤집기 (0) | 2022.10.25 |
[Inflearn] 자바 알고리즘 문제풀이 #01-04 4. 단어 뒤집기 (0) | 2022.10.12 |
[Inflearn] 자바 알고리즘 문제풀이 #01-03 3. 문장 속 단어 (0) | 2022.10.05 |
[Inflearn] 자바 알고리즘 문제풀이 #01-01 1. 문자 찾기 (0) | 2022.10.04 |