문제 설명
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
입력예시: StuDY
출력예시: sTUdy
작성 코드
public class Test01_02 {
public static void main(String[] args) {
Test01_02 test02 = new Test01_02();
System.out.println(test02.solution1( "StuDY"));
System.out.println(test02.solution2( "StuDY"));
}
public String solution1(String s) {
String result = "";
for(char c : s.toCharArray()) {
if(Character.isUpperCase(c)) {
result += Character.toLowerCase(c);
}else {
result += Character.toUpperCase(c);
}
}
return result;
}
public String solution2(String s) {
String result = "";
// System.out.println((int)'A');
// System.out.println((int)'Z');
// System.out.println((int)'a');
// System.out.println((int)'z');
for(char c : s.toCharArray()) {
// isUpperCase()
if(c >= 65 && c <= 90) {
result += (char)(c+32);
// isLowerCase()
}else {
result += (char)(c-32);
}
}
return result;
}
}
문제 풀이
두가지 방법으로 풀이가 가능하다.
첫번째는 Character클래스에서 제공하는 isUpperCase(), isUpperCase()를 활용하는 방법
두번째는 아스킷코드를 비교하는 방법이다.
아스킷코드는 char형이라면 기본으로 연산 가능하며, 필요 시 (int), (char)로 형변환이 필요하다.
아스킷코드는 외울 필요는 없고 필요 시 int형으로 형변환 해서 찍어보면 될것 같다.
'알고리즘 with 자바' 카테고리의 다른 글
6. 중복문자제거 (0) | 2021.04.15 |
---|---|
5. 특정 문자 뒤집기 (0) | 2021.04.11 |
4. 단어 뒤집기 (0) | 2021.04.10 |
3. 문장 속 단어 (0) | 2021.04.10 |
1. 문자 찾기 (0) | 2021.04.09 |