본문 바로가기

Algorithm/Inflearn

[Inflearn] 자바 알고리즘 문제풀이 #01-02 2. 대소문자 변환

문제

설명

대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.

 

입력 

첫 줄에 문자열이 입력된다. 문자열의 길이는 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)