대소문자 변환

문제

설명

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

입력

첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다. 문자열은 영어 알파벳으로만 구성되어 있습니다.

출력

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

예시 입력 1

  StuDY

해결방법

String을 Char[] 배열로

  • str.toCharArray();

캐릭터의 대소문자 변환

  • Character.isUpperCase(char a);
  • Character.isLowerCase(char a);
  • Character.toUpperCase(char a);
  • Character.toLowerCase(char a);

ASCII 참고!

대문자 아스키와 소문자 아스키는 서로 ‘32’ 차이가 난다.

따라서, 소문자인 경우 -32를 하면 대문자가 대문자인 경우 +32를 하면 소문자가 된다.

  • 대문자 : 65 ~ 90
  • 소문자 : 97 ~ 122

코드

  • upper/lower case 메소드로 변환하여 해결하는 경우
    import java.util.*;
      
    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.Main T = new Main.Main();
            Scanner kb = new Scanner(System.in);
            String str = kb.next();
            System.out.print(T.solution(str));
        }
    }
    
  • ASCII 코드를 이용하여 해결하는 경우

    import java.util.*;
    
    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.Main T = new Main.Main();
          Scanner kb = new Scanner(System.in);
          String str=kb.next();
          System.out.print(T.solution(str));
      }
    }
    

© 2024. Chiptune93 All rights reserved.