본문 바로가기
Java/공부

아스키문자 변환과 관련한 자바 메소드 공부

by notcherry 2023. 7. 5.

[문제] 프로그래머스 대소문자 바꿔 출력하기

 

**Ascii

A = 65
a = 97

 

 

1. 처음 작성한 코드

public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String a = sc.next();

        for(int i = 0 ; i < a.length(); i++){

            char alpha = a.charAt(i);
            int num = (int)alpha;
            if(97 <= num){
                num = num - 32;
                System.out.printf(String.valueOf((char)num));

            }else{
                num = num + 32;
                System.out.printf(String.valueOf((char)num));
            }
        }


    }

for문으로 일일이 비교하다가 charAt()이라는 메소드를 찾아 사용했다.

 

charAt()

string으로 받은 값을 char 요소로 하나씩 볼 수 있게 해주는 메소드 

 

 

 

2. 다른 분들의 코드를 참고하여 다시 작성한 코드

 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String answer = "";
        for (Character c : a.toCharArray()){ 
            if (Character.isUpperCase(c)){
                answer += Character.toLowerCase(c);
            }else{
                answer += Character.toUpperCase(c);
            }
        }
        System.out.println(answer);
    }

toCharArray

charAt은 요소로 보여줬다면 이것은 string을 char로 배열해주는 메소드다.

스트링에서 캐릭터로 만든 배열을 다시 문자열로 만들려면 String str = new String(charArr); 해주면 된다.

 

isUpperCase

대문자라면 true를 나타내주는 메소드.

 

toUpperCase & toLowerCase

param 없이

각각 대문자를, 소문자를 리턴한다.

 

 

 

 

메소드도 다다익선

훨씬 간결해졌다.