문제
설명
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
입력
첫 줄에 문자열이 입력된다. 문자열의 길이는 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 |