
charAt(int index)는 문자열(String)에서 특정 인덱스에 위치한 문자(char) 하나를 가져오는 메서드입니다.
String s = "HELLO";
char c = s.charAt(1); // 'E'
char 입니다.입력 예시
11111
11122
11121
19111
11111
코드
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = 5;
int[][] map = new int[N][N];
// 배열에 넣기
for (int i=0; i<N; i++) {
String line = br.readLine(); // 예: "11111"
for (int j=0; j<N; j++) {
map[i][j] = line.charAt(j) - '0'; // '1' → 1
}
}
// 확인용 출력
for (int[] row : map) {
for (int n : row) {
System.out.print(n + " ");
}
System.out.println();
}
자바에서 '0', '1', '2', ..., '9'는 모두 char 타입입니다.
그런데 내부적으로는 ASCII 코드라는 정수값으로 저장돼요.
| 문자 | ASCII 코드 |
|---|---|
'0' | 48 |
'1' | 49 |
'2' | 50 |
'3' | 51 |
| ... | ... |
'9' | 57 |
따라서 문자에 '0'을 빼주면, 정수로 바꿔주는 효과가 있습니다!
입력 예시
G B G G B
G B G G B
B B B B G
B G B B B
G B B B B
코드
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = 5;
char[][] map = new char[N][N];
// 코드
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < N; j++) {
map[i][j] = st.nextToken().charAt(0); // "G" → 'G'
}
}
// 확인용 출력
for (char[] row : map) {
for (char c : row) {
System.out.print(c + " ");
}
System.out.println();
}