Roel Notebook

[Java] 대 소문자 변환

by Roel Downey
728x90
반응형

설명

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

 

입력

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

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

 

출력

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

// 입력예시
StuDY

// 출력예시
sTUdy

 

답안코드

< 풀이 보기 전 나의 답안 풀이 >

public class Main {
    public String solution(String str) {
        char[] result = new char[str.length()];
        int i = 0;

        for( char x : str.toCharArray()) {
            byte data = (byte) x;
            if (data >= 65 && data <= 90) {
                result[i++]+= Character.toLowerCase(x);
            }
            else {
                result[i++]+= Character.toUpperCase(x);
            }
        }

        return String.valueOf(result);
    }
    public static void main(String[] args){
        Main t = new Main();
        Scanner kb = new Scanner(System.in);
//        String str = kb.next();
        String str = "StuDY";

        System.out.println(t.solution(str));
    }
}

 

풀이

public class Main {
    public String solution(String str) {
        String answer = "";
        for( char x : str.toCharArray()) {
            if(Character.isLowerCase(x)) {
                answer += Character.toUpperCase(x);
            }
            else {
                answer += Character.toLowerCase(x);
            }
        }
        return answer;
    }
    public static void main(String[] args){
        Main t = new Main();
        Scanner kb = new Scanner(System.in);
//        String str = kb.next();
        String str = "StuDY";

        System.out.println(t.solution(str));
    }
}

- 5번 라인 :  if문으로 써도 되는 이유....

 

 

아스키 풀이

public class Main {
    public String solution(String str) {
        String answer = "";
        for( char x : str.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 kb = new Scanner(System.in);
//        String str = kb.next();
        String str = "StuDY";

        System.out.println(t.solution(str));
    }
}
728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기