Java_기초_05_Ascii(아스키코드)
미국에서 만들어진 코드
이 코드를 사용하면 저번 장에서 만들었던 알파벳 수열을 쉽게 만들 수 있다.
이해해야 하는 부분은 알파벳 마다 정해진 값이 있으며, 1이 더해질 때마다 그 다음 값이 출력된다는 점이다.
//아스키 코드 (ANSI) : 미국 표준 코드
char c = 'A'; // 알파벳 대문자는 65부터 , (a)소문자 97부터 시작 , 숫자 (0)은 33부터 시작한다.
System.out.println(c);
System.out.println((int)c);
c = 'B';
System.out.println(c);
System.out.println((int)c);
c++;
System.out.println(c);
System.out.println((int)c);
대문자 A를 출력해서 그것을 숫자로 바꿔 표현했더니 65가 나왔다. 캐릭터 (char) 값을 이용해서 알파벳을 출력하면 컴퓨터는 그것을 알파벳과 아스키 코드속의 정수 두가지로 이해한다. 그래서 그 값을 int 를 이용해서 숫자 값으로 바꿔주면
65가 되는 것이다.
그렇기 때문에 마지막 줄의 c++;는 앞선 값인 대문자 B에서 1이 더해진 대문자 C의 값으로 나타난다.
이를 활용해보자.
앞선 영화관 배열을 활용해서 아스키코드를 활용한다.
String[][] seats3 = new String[10][15];
char cH = 'A';
for (int i = 0; i < seats3.length; i++) { //세로
for (int j = 0; j < seats3[i].length; j++) { //가로
seats3[i][j] = String.valueOf(cH) + (j + 1);
}
cH++;
}
//좌석 정보 확인
for (int i = 0; i < seats3.length; i++) { // 세로열 기준
for (int j = 0; j < seats3[i].length; j++) { //가로열
System.out.print(seats3[i][j] + " "); //A1A2
}
System.out.println();
크게 달라진 부분은 기존에는 알파벳 배열을 따로 만들어서 그 배열을 불러오는 식으로 진행했다면,
이번에는 알파벳 배열을 따로 만들지 않고, 캐릭터 ch 값에 대문자 A를 넣어서 그 값을 다시 String. valueOF 명령어를 이용해서 문자열로 바꾼 뒤에 사용했다는 것이다. 때문에 값을 더해서 A 다음에 B가 오도록 할 수 있었고, 배열의 가로열 순환 이후에 ch++;를 이용해서 그 값을 하나씩 더 해나간다. 그 값은 기존의 방식과 같다.
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15
E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12 G13 G14 G15
H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J12 J13 J14 J15