알고리즘/인프런_자바코테강의

인프런 2. 대소문자 변환 (Java)

고구마와 감자 2022. 3. 7. 21:20

 

 

아스키코드 활용한 변환 

public class Main {

    private String solution(String str) {
        String answer = "";
        char tmp;
        for (int i = 0; i < str.length(); i++) {
            tmp = str.charAt(i);

            if ((65<= tmp) && (tmp <= 90)){ // 대문자
                answer += String.valueOf(tmp).toLowerCase(); // 소문자 변환
            } else if((97<= tmp) && (tmp <= 122)) { // 소문자
                answer += String.valueOf(tmp).toUpperCase(); // 대문자 변환
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(T.solution(str));
    }
}

 

다른 풀이 

Character클래스를 활용한 대소문자 구분 후 대소문자 변환

아스키코드에서 대소문자의 차이는 32임을 활용

public class Main2 {

    private String solution(String str) {
        String answer = "";
        char tmp;

        for(char x : str.toCharArray()) {
            if (Character.isLowerCase(x)) answer += Character.toUpperCase(x);
            else if(Character.isUpperCase(x)) answer += Character.toLowerCase(x);
           /* if(x >= 65 && x <= 90) answer += (char)(x +32); // 대문자
            else answer += (char)(x - 32);*/

        }
        return answer;
    }

    public static void main(String[] args) {
        Main2 T = new Main2();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(T.solution(str));
    }
}