无法在java中打印字符数组?可能是编码的?
我今天想开始一个小项目,但我遇到了一个奇怪的错误(至少对我来说是这样)。 给定一个字符数组,我无法使用for循环打印这些数字
这是代码
public class Grid
{
public static char[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
public static void draw()
{
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
System.out.print(matrix[i][j]);
}
System.out.print("\n");
}
}
}
这是主要课程
public class Main
{
public static void main(String[] args)
{
Grid.draw();
}
}
输出
我不明白问题出在哪里,因为如果我从“char[][]切换到“int[][],一切正常吗? 代码在我看来很正常,有人能解释一下如何修复吗?为什么会这样? 谢谢:)
# 1 楼答案
用单引号将字符括起来。”1','2'....
# 2 楼答案
字符数组必须使用单引号(“”)初始化,这是您能够使用
int[]
但在char[]
中出现错误的唯一原因# 3 楼答案
您的数组是2D
char
数组。这意味着它里面的一切都是char
。当你System.out.println((char) 1);
时,它会打印ASCII字符“id”等于1,谁知道这个字符是什么(对我来说,它打印的字符我的浏览器无法显示)。为了看得更清楚,做System.out.println((char) 65);
。您将看到输出为'A'
,因为在ASCII中,“A”是65个字符如果要打印1、2、3等,则必须向该数组的每个单元格值添加一个引号(让java知道它们是字符),这意味着打印时,它将执行
System.out.println('1');
。或者你会给出ASCII码。1是49。所以System.out.println((char) 49);
将打印1