CS/Data Structure & Algorithm

[String] 2. 대소문자 변환

문제

설명

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

입력

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

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

출력

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

예시 입력 1 

StuDY

예시 출력 1

sTUdy

 

풀이

1. 특정 문자열을 Scanner를 통해 받습니다.

2. solution 함수에서 text로 문자열을 받아들입니다.

3. 반복문을 사용해 한글자씩 비교하도록 하고, 조건문을 사용해서 한글자마다 소문자, 대문자 비교 후 바꿔서 출력하도록 합니다. 

여기서 2가지 경우가 있습니다.

3-1 Character 클래스의 메서드들을 사용해서 비교할 수 있습니다.

3-2 ASCII 코드의 특성을 이용해서 비교할 수 있습니다. 이때는 형변환을 사용해야 합니다.

4. answer를 반환해서 출력합니다.

 

배경지식

- 자바 String 클래스의 동작 방식과 지원하는 여러 메서드들의 사용 방법을 알고 있어야 합니다.

- 자바 입출력 Scanner 클래스를 사용할 줄 알아야 합니다.

- 향상된 for문을 사용할 줄 알면 좋습니다.

- 문자가 기계에서 어떻게 이해하는지 알아야 합니다. (아스키코드)

 

정답

import java.util.*;

class Main {
    public String solution(String text) {
        String answer = "";

        // Character 클래스 메서드 사용
		for(char x : text.toCharArray()) {
			if(Character.isLowerCase(x)) answer+=Character.toUpperCase(x);
			else answer+=Character.toLowerCase(x);
		}
		
        // ASCII code 이용 대문자: 65~90, 소문자: 97~122 정확히 32 차이남
        /*
        for(char x: text.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 t = in.next();
        System.out.println(T.solution(t));
    }
}

'CS > Data Structure & Algorithm' 카테고리의 다른 글

Algorithm & Data Structure  (0) 2022.08.13
자료구조와 알고리즘을 공부하는 이유  (0) 2022.08.13
[String] 1. 문자 찾기  (0) 2022.08.04
List  (0) 2021.12.02
deque  (0) 2021.12.02