코딩테스트

[문자열] 2. 대소문자 변환

개발하는지호 2023. 11. 25. 23:45
2. 대소문자 변환
 

설명

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

입력

첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.

문자열은 영어 알파벳으로만 구성되어 있습니다.

출력

첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.

예시 입력 1 

StuDY

예시 출력 1

sTUdy

 

 

<<풀이>>

두 가지 방식의 풀이가 있다. 첫째는, Character 메소드를 활용하는 것이고 두 번째는 아스키코드 값을 이용해서 하는 것이다.

 

Character 메소드 활용

import java.util.Scanner;

class Main {
    public String solution(String str) {
        String answer = "";
        char[] x = str.toCharArray();

        for (int i = 0; i < x.length; i++) {
            if (Character.isLowerCase(x[i])) {
                answer += Character.toUpperCase(x[i]);
            } else {
                answer += Character.toLowerCase(x[i]);
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner in = new Scanner(System.in);

        String str = in.nextLine();
        System.out.println(T.solution(str));
    }
}

 

향상된 반복문으로도 충분히 가능하다.

 

 

아스키코드 활용

 

import java.util.Scanner;

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 T = new Main();
        Scanner in = new Scanner(System.in);

        String str = in.nextLine();
        System.out.println(T.solution(str));
    }
}

 

여기서 if문은 간단한 형태이면 {}를 생략하고도 가능하다.

 

<<추가 공부>>

 

아스키 코드

아스키(ASCll)란, 미국 국립 표준 협회에서 표준화한 정보교환용 7비트 부호체계이다.

 

A : American

S : Standard

C : Code for

I : Information

I : Interchange

 

아스키코드는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다.

 

문자 인코딩 : 이는 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다.

 

아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 둔다.