반응형
아스키코드를 사용한 문자열 변환 (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() 을 사용했는데 자꾸 에러가 나온다.. 이거부터 수정하고 다시 코드 공유할 예정!
반응형
'Computer Science > 알고리즘' 카테고리의 다른 글
[알고리즘] 문장 속 가장 긴 단어 찾기 (Java) (0) | 2022.05.09 |
---|---|
[알고리즘] 문자열 : 문자열 찾기 (Java) (0) | 2022.05.03 |
최근댓글