기주

[TIL] 아스키코드로 대소문자 변환하기 본문

알고리즘/코테

[TIL] 아스키코드로 대소문자 변환하기

기주그지마 2024. 10. 25. 11:40

 

 

 

아스키코드로 대소문자 변환하기

 

대문자 : 65(A) ~ 90(Z)

소문자: 97(a) ~ 122(z)

 

때문에

소문자에서 (-32) 를 하면 대문자가 되고,

대문자에서 (+32) 를 하면 소문자가 된다.

 

 

 

 

 

char타입

 

자바에서 char타입은 문자를 의미하는 타입이지만 내부적으로는 아스키코드를 통해 숫자로 표현된다

예를들어, char타입의 'A'는 65, 'a'는 97의 값을 가진다.

 

 

코드)

char ch = 'A';
int num = ch; // num = 65 저장

 

 

 

 

 

 

 

 

코드 문제 예제) 대소문자 변환

import java.util.*;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        String str = sc.next();
        StringBuilder sb = new StringBuilder();

        for(char ch: str.toCharArray()){ //forEach는 배열을 대상으로 할 수 있다.

            if(ch >= 65 && ch <= 90){   // 대문자라면 소문자변환
                sb.append( (char)(ch+32) );
            } else{ 					// 소문자라면 대문자변환
                sb.append((char)(ch-32));
            }
        }

        String answer = sb.toString();

        System.out.println(answer);
    }
}