1-2 대소문자 반환 (Java)

정우·2022년 9월 23일

✏️ 문제


설명

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

입력

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

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

출력

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

예시 입력

StuDY     sTUdy


✏️ 코드

import java.util.Scanner;

class Main {
    public static String solution(String str) {
        char[] charArray = str.toCharArray();
        
        StringBuilder sb = new StringBuilder();
        
        for (char i : charArray) {
            if (Character.isUpperCase(i)) {
                sb.append(Character.toLowerCase(i));
            }
            else {
                sb.append(Character.toUpperCase(i));
            }
        }
        
        String answer = sb.toString();
        
        return answer;
    }
    
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String str = sc.next();
		System.out.println(solution(str));
	}
}

입력받은 str을 char배열로 변환후 각 char별로 대소문자 구분 후 StringBuilder sb에 하나씩 더해주면 된다.


✏️ 정리

StringBuilder() : 문자열과 문자열을 합칠때 새로운 객체를 생성하지 않고 더하는 방식으로 작동. 그렇기 때문에 속도도 빠르고 메모리도 덜 차지한다. append로 계속 추가했다 문자열을.
.toString : 을 사용해서 StringBuilder sb로 만든 문자열을 변환 후 출력해주었다

profile
That's it

0개의 댓글