728x90
프로그래머스 _ 코딩 기초 트레이닝 DAY 1 - (4)
출처 - https://school.programmers.co.kr/learn/courses/30/lessons/181949
문제 | 영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
입력 #1 | aBcDeFg
출력 #1 | AbCdEfG
>> 풀이 <<
문자열의 문자 하나하나를 반복문을 이용해 대소문자 판별을 한 후, 대문자를 소문자로, 소문자를 대문자로 바꾸어 새 문자열을 만들어 풀려고 한다.
이를 위해 자바에서 제공하는 메소드를 활용할 것이다.
- 대소문자 판별 -> isUpperCase(), isLowerCase()
- boolean isUpperCase() 는 문자가 대문자일 경우 true를 반환, 그렇지 않을 경우 false를 반환한다. 알파벳이 아닌 것을 넣었을 경우에도 false가 반환된다. 기본적으로 객체를 다루는 메소드이기 때문에 char형이 아닌 Wrapper 클래스 중 하나인 Character 를 이용한다.
- boolean isLowerCase() 는 문자가 소문자일 경우 true를, 그렇지 않을 경우 false를 반환한다. 마찬가지로 알파벳이 아닌 것을 넣었을 경우에도 false가 반환된다.
- Wrapper클래스는 자바의 기본 타입을 객체화 한 것을 의미한다.
기본타입 | byte | short | int | long | char | float | double | boolean |
Wrapper클래스 | Byte | Short | Integer | Long | Character | Float | Double | Boolean |
- 문자열을 char형 배열로 바꾸기 -> toCharArray()
- toCharArray() 는 문자열을 한 글자씩 쪼개서 char타입의 배열에 넣어주는 메소드이다.
- 이걸 for문에 이용할 예정이다.
- toCharArray() 는 문자열을 한 글자씩 쪼개서 char타입의 배열에 넣어주는 메소드이다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String res = "";
for (Character c : a.toCharArray()) {
if (Character.isUpperCase(c)) {
res += (char)(c+32);
}
else if (Character.isLowerCase(c)) {
res += (char)(c-32);
}
}
System.out.print(res);
}
}
대문자면 아스키코드를 이용해 소문자로 바꾸고, 소문자면 아스키코드를 이용해 대문자로 바꾸었다.
'코딩테스트 > 프로그래머스 Lv.0' 카테고리의 다른 글
[프로그래머스] 조건문자열 - JAVA (0) | 2023.07.03 |
---|---|
[프로그래머스] 정수형 문자열로 변환 (int to String, String to int) - JAVA (0) | 2023.07.03 |
[프로그래머스] 문자열 곱하기 - JAVA (0) | 2023.07.02 |
[프로그래머스] 문자 리스트를 문자열로 변환하기 - JAVA (0) | 2023.07.02 |
[프로그래머스] 문자열 겹쳐쓰기 - JAVA (0) | 2023.07.02 |