由于您想将数字替换为字符,因此矩阵数据类型应为char。这是一个例子:
int m = 3, n = 3;
char[][] matrix = new char[m][n];
Scanner scan = new Scanner(System.in);
System.out.println("Enter the elements of the matrix");
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
matrix[i][j] = scan.next().charAt(0);
for(int i = 0; i < matrix.length; i++)
for(int j = 0; j < matrix[i].length; j++)
if(matrix[i][j]=='1')
matrix[i][j] = 'I';
else if(matrix[i][j]=='0')
matrix[i][j] = 'N';
System.out.println(Arrays.deepToString(matrix));
示例输入/输出:
Enter the elements of the matrix
1
1
1
0
0
0
1
0
1
[[I, I, I], [N, N, N], [I, N, I]]
根据您的要求,这里是您如何扫描xxx xxx xxx xxx 形式的字符,其中x 应该是0 或1,并根据m 和n 写入:
int m = 4, n = 3;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the elements of the matrix");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < m; i++) {
String inp = scan.nextLine();
while (inp.length() != n || !inp.matches("[01]+")) {
System.out.println("Warning: input must be "+n+" characters and only 1 or 0.");
inp = scan.nextLine();
}
sb.append(inp+" ");
}
String str = sb.toString().trim().replaceAll("1", "I");
str = str.replaceAll("0", "N");
System.out.println(str);
示例输入/输出:
Enter the elements of the matrix
112
Warning: input must be 3 characters and only 1 or 0.
111
000
101
010
III NNN INI NIN