반응형

아스키코드를 사용한 문자열 변환 (Java)

 

알고리즘에서 사용하는 아스키코드에 대해 알아보자. 
ASCII는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다.

 

아스키코드

33 ! 느낌표 34 " 큰따옴표 35 # 숫자 기호
36 $ 달러 기호 37 % 퍼센트 부호 38 & 앰퍼샌드
39 ' 어포스트로피 40 ( 여는 소괄호 41 ) 닫는 소괄호
42 * 별표 43 + 더하기 기호 44 , 쉼표
45 - 하이픈 46 . 마침표 47 / 슬래시
48 0 49 1 50 2
51 3 52 4 53 5
54 6 55 7 56 8
57 9 58 : 콜론 59 ; 세미콜론
60 < 미만 부호 61 = 등호 62 > 초과 부호
63 ? 물음표 64 @ at 기호 65 A 대문자 a
66 B 대문자 b 67 C 대문자 c 68 D 대문자 d
69 E 대문자 e 70 F 대문자 f 71 G 대문자 g
72 H 대문자 h 73 I 대문자 i 74 J 대문자 j
75 K 대문자 k 76 L 대문자 l 77 M 대문자 m
78 N 대문자 n 79 O 대문자 o 80 P 대문자 p
81 Q 대문자 q 82 R 대문자 r 83 S 대문자 s
84 T 대문자 t 85 U 대문자 u 86 V 대문자 v
87 W 대문자 w 88 X 대문자 x 89 Y 대문자 y
90 Z 대문자 z 91 [ 여는 대괄호 92 백슬래시
93 ] 닫는 대괄호 94 ^ 캐럿 95 _ 밑줄
96 ` 억음 부호 97 a 소문자 a 98 b 소문자 b
99 c 소문자 c 100 d 소문자 d 101 e 소문자 e
102 f 소문자 f 103 g 소문자 g 104 h 소문자 h
105 i 소문자 i 106 j 소문자 j 107 k 소문자 k
108 l 소문자 l 109 m 소문자 m 110 n 소문자 n
111 o 소문자 o 112 p 소문자 p 113 q 소문자 q
114 r 소문자 r 115 s 소문자 s 116 t 소문자 t
117 u 소문자 u 118 v 소문자 v 119 w 소문자 w
120 x 소문자 x 121 y 소문자 y 122 z 소문자 z
123 { 여는 중괄호 124 | 세로 막대 125 } 닫는 중괄호
126 ~ 틸드

여기서 많이 사용하는 아스키코드가 숫자, 영문 대문자, 영문 소문자이다.
숫자는 48 ~ 57, 영문 대문자는 65 ~ 90, 영문 소문자는 97 ~ 122이다. 

영문 소문자에서 32를 빼면 영문 대문자가 된다. 알고리즘에서 활용하기 편하다. 
인프런 강의를 듣고 푼 문제 중 대소문자 변환은 아스키코드를 활용하여 풀이할 수 있었다. 

 

// 대소문자 변환
public class Main {
    public String solution(String str) {
        String answer = "";
        for(char x : str.toCharArray()) {
            // if(Character.isLowerCase(x)) answer += Character.toUpperCase(x);
            // else answer += Character.toLowerCase(x);

            // 아스키코드 : 65~90(대문자), 97~122(소문자) 대소문자차이는 32(97-65)
            if(x >= 97 && x <= 122) answer+= (char)(x-32);
            else answer += (char)(x+32);
        }
        return answer;
    }

    public static void main(String[] args) {
        Main m = new Main();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(m.solution(str));
    }
}

 

위 코드를 자바스크립트로 변환하여 다시 풀고 있는데, 문자열을 배열에 담고 다시 합치는 과정에서 join() 을 사용했는데 자꾸 에러가 나온다.. 이거부터 수정하고 다시 코드 공유할 예정! 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기