본문 바로가기
알고리즘/자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

1-2 대소문자 변환

by 보름달빵 2025. 4. 7.

문제 포인트 

  • 대문자는 소문자로, 소문자는 대문자로 변환한다. 
  • 따라서 어떤 기준에 따라 대문자와 소문자로 구분할 수 있는지 생각해보면 된다. 

 

풀이 

아스키 코드표에 따르면 영어 대문자는 65~90, 소문자는 97~122 의 값을 가진다. 

따라서 대소문자의 차이값은 32이다. 

 

입력받은 문자열을 하나하나 확인해보면서, 대문자의 범위 or 소문자의 범위에 들어가는지 확인하여 대소문자를 구분한다. 

이후 대문자인 경우 소문자로, 소문자인 경우 대문자로 변환한다. 

 

 

 

package 섹션1_String;

import java.io.*;

public class 대소문자변환 {
    public static void main(String[] args) throws IOException {


        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder newStr = new StringBuilder();

        String str = br.readLine();


        int diff='a'-'A'; // 대문자와 소문자의 차이

        for(char c:str.toCharArray()){
            if(c>=65 && c<=90){ // 대문자인 경우 소문자로 변환 
                newStr.append((char) (c + diff)); 
            }else{ // 소문자인 경우 대문자로 변환 
                newStr.append((char) (c - diff));
            }
        }

        bw.write(newStr.toString());
        bw.flush();
        bw.close();
        br.close();

    }
}

 

 

 

✅ Character static 메서드 이용하기 

for(char c:str.toCharArray()){
    if(Character.isLowerCase(c)){
        newStr.append(Character.toUpperCase(c));
    } else {
        newStr.append(Character.toLowerCase(c));
    }
}