👩‍💻 코테 공부/코테 공부

[코테 - Java] 대소문자 변환

수댕ʕت̫͡ʔ 2024. 9. 26. 23:57
 

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 강의 | 김태원 - 인프런

김태원 | 자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으

www.inflearn.com

문자열을 입력받아서 대문자는 소문자로, 소문자는 대문자로 변환하는 문제였다.

 

1. 내가 푼 답안

import java.util.*;

public class Main {
    public String solution(String str) {
        String answer = "";
        // Solution - 1 문자열을 char 배열로 바꿔주기!
        for (char x : str.toCharArray()) {
            if (Character.isUpperCase(x)) {
                answer += Character.toLowerCase(x);
            } else {
                answer += Character.toUpperCase(x);
            }
        }
        // Solution - 2 아스키코드를 이용한 풀이!
//        for(char x : str.toCharArray()) {
//            if (x >= 97 && x <= 122) answer += (char)(x-32);
//            else answer += (char)(x+32);
//        }
        // Solution - 3
//        for (int i = 0 ; i < str.length() ; i++) {
//            if (Character.isUpperCase(str.charAt(i))) {
//                answer += Character.toLowerCase(str.charAt(i));
//            } else if (Character.isLowerCase(str.charAt(i))) {
//                answer += Character.toUpperCase(str.charAt(i));
//            }
//        }

        return answer;
    }
    public static void main(String[] args) {
        Main T = new Main();

        Scanner scanner = new Scanner(System.in);

        String sentence = scanner.nextLine();

        System.out.println(T.solution(sentence));

    }
}

 

2. 문법정리

  • 문자열을 -> 문자 배열 : str.toCharArray()
  • 아스키 코드를 사용해서 문제를 해결할 수 있다.
    • 문자가 97~122 이면 영문 소문자를 뜻하고, 65 ~ 90이면 영문 대문자를 뜻한다.