package Early알튜비튜;
import java.util.Scanner;
public class Bak10798 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char[][] ar = new char[5][15];
for(int i = 0; i<ar.length; i++) {
String line = input.nextLine();
for(int j = 0; j < line.length() ;j++)
ar[i][j] = line.charAt(j);
}
for(int i =0; i<15; i++) {
for(int j = 0; j<5; j++) {
if(ar[j][i] != '\0')
System.out.print(ar[j][i]);
}
}
}
}
//charAt() 메서드란?
//charAt()은 문자열(String)에서 특정 위치(index)의 문자를 가져오는 메서드입니다.
//Java에서 문자열은 문자(char)의 배열과 비슷하게 동작하므로, charAt()을 사용하면 문자열에서 개별 문자를 추출할 수 있습니다.
해당 코드의 문제:
널문자 처리 X
공백이 출력되는 이유는 char 배열을 초기화할 때 기본값이 '\0' (널 문자)이기 때문!
널 문자는 보이지 않지만, 출력할 때 공백으로 출
해결 방법
널 문자가 출력되지 않도록 아래와 같이 if (ar[j][i] != '\0') 조건을 유지하면서, 배열을 빈 문자 (' ')로 초기화하는 것이 좋다.
package Early알튜비튜;
import java.util.Scanner;
public class Bak10798 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char[][] ar = new char[5][15];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 15; j++) {
ar[i][j] = ' '; // 빈칸으로 초기화
}
}
for(int i = 0; i<ar.length; i++) {
String line = input.nextLine();
for(int j = 0; j < line.length() ;j++)
ar[i][j] = line.charAt(j);
}
for(int i =0; i<15; i++) {
for(int j = 0; j<5; j++) {
if(ar[j][i] != ' ')
System.out.print(ar[j][i]);
}
}
}
}
charAt() 메서드란?
charAt()은 문자열(String)에서 특정 위치(index)의 문자를 가져오는 메서드입니다.
Java에서 문자열은 문자(char)의 배열과 비슷하게 동작하므로, charAt()을 사용하면 문자열에서 개별 문자를 추출할 수 있습니다.
char로 배열을 만들면, 기본값으로 널문자 \0가 들어가있다. 배열을 모두 빈칸으로 초기화시켜주자.
length()
> 문자열의 실제 문자 개수를 반환한다. '\0'는 포함되지 않는다. charAt()로 접근할 수 있는 문자의 개수만 반환한다.
'개인공부정리페이지 > 백준' 카테고리의 다른 글
| [알고리즘] 2164번 (0) | 2026.01.21 |
|---|