ezhoon

[인프런] 01-02 대소문자 변환 본문

[Java] 인프런 문제풀이/Stirng(문자열)

[인프런] 01-02 대소문자 변환

ezhoon 2022. 1. 15. 21:20

대문자와 소문자가 존재하는 문자열 입력받아 대문자는 소문자로 소문자는 대문자로 변환 후 출력하시오.

 

⚠️ 주의사항


  • 문자열은 영어 알파벳으로만 구성
  • 첫 줄에 문자열 입력

 

문제풀이


1. 아스키코드 값 사용해서 풀기

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public String solution(String str) {

        StringBuilder sb = new StringBuilder();

        for (char x : str.toCharArray()) { // 대소문자 아스키코드 값은 32가 차이난다
            if (x >= 97 && x <= 122) sb.append(Character.toUpperCase(x));
            else sb.append(Character.toLowerCase(x));
        }
        return sb.toString();
    }

    public static void main(String[] args) throws IOException {
        Main T = new Main();

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str = br.readLine();
        System.out.println(T.solution(str));
    }
}

첫 번째 풀이는 아스키코드 값으로 비교해서 대소문자 변환을 해주었습니다.

아스키 코드 값

소문자 알파벳과 대문자 알파벳의 차이는 32라는 점을 이해하고 코드 풀이를 하면 됩니다.


2. 즉시 비교

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public String solution(String str) {

        StringBuilder sb = new StringBuilder();

        for (char x : str.toCharArray()) {
            if (Character.isLowerCase(x)){
                sb.append(Character.toUpperCase(x));
            }else{
                sb.append(Character.toLowerCase(x));
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) throws IOException {
        Main T = new Main();

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str = br.readLine();
        System.out.println(T.solution(str));
    }
}

Comments