[Algorithm] 대소문자 변환

19·2022년 10월 12일
0

Algorithm

목록 보기
13/28

대소문자 변환

설명

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

입력

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

출력

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

예시 입력 1

StuDY

예시 출력 1

sTUdy



해결

public class StringEx_2 {
    public String solution(String input) {
        String answer = "";
        // 일반 for문
//        for (int i=0; i< input.length(); i++) {
//            char ch = input.charAt(i);
//            if (Character.isUpperCase(ch)) {
//                answer += Character.toLowerCase(input.charAt(i));
//            } else {
//                answer += Character.toUpperCase(input.charAt(i));
//            }
//        }
        // for-each 문
//        for (char ch : input.toCharArray()) {
//            if (Character.isUpperCase(ch)) {
//                answer += Character.toLowerCase(ch);
//            } else {
//                answer += Character.toUpperCase(ch);
//            }
//        }
        // 아스키코드 활용
        for (char ch : input.toCharArray()) {
            // 대문자 65~90 / 소문자 97~122
            if (ch>=65 && ch<=90) {
                answer += (char)(ch+32);
            } else {
                answer += (char)(ch-32);
            }
        }

        return answer;
    }

    public static void main(String[] args) throws IOException {
        StringEx_2 T = new StringEx_2();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        System.out.println(T.solution(input));
    }
}
  • for문을 통해 문장의 각 문자들을 하나씩 검사해보며 문제를 해결했다.
  • 문자의 대소문자 확인과 변경을 위해 Character의 메소드를 사용해서 해결했다.
    (isUpperCase, toLowerCase, toUpperCase)
    • String과 유사해서 이해가 쉬웠음
  • 아스키 코드를 활용해서도 문제를 풀 수 있었다. 문자(알파벳)은 아스키 코드로도 해결가능하다는 것을 알 수 있었다.

실제로 문제를 풀기 위해 고민해보는 과정이 중요하다는 것을 느꼈다.

profile
하나씩 차근차근

0개의 댓글