我做了一个N queens java项目,要求我打印出一个多维数组,显示我可以在哪里放置queens。我的数组是整数。它在可观的位置打印出 1 和 0。我想知道是否有办法可以打印出一个 Q 代替 1 和一个空格代替 0,而无需将我的数组更改为 String 类型。我回去把我的数组更改为字符串类型,我得到了空值来代替一些 0。
我尝试将 int 转换为 ASCII 字符(81 将是 Q)。
我还尝试将 Int 数组复制到字符串数组中,但 java 不允许这样做。有什么想法吗?
public void print(){
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
if (a[i][j]==1){
a[i][j]=((char)81);
}
System.out.print(a[i][j]);
if(j < a[i].length - 1) System.out.print(" ");
}
System.out.println();
}
}
Solution :
0 0 0 0 0 81 0 0
81 0 0 0 0 0 0 0
0 0 0 0 0 0 81 0
0 0 0 81 0 0 0 0
0 81 0 0 0 0 0 0
0 0 0 0 81 0 0 0
0 0 0 0 0 0 0 81
0 0 81 0 0 0 0 0
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
if (a[i][j]==1){
System.out.print("Q");
if(j < a[i].length - 1) System.out.print(" ");
} else{
System.out.print(a[i][j]);
if(j < a[i].length - 1) System.out.print(" ");
}
}
System.out.println();
}
除非你需要一个存储在数组中的"Q",否则你不能在需要时打印出"Q"吗?然后它将根据需要显示在结果中。
使用
System.out.print((char)a[i][j]);
而不是
System.out.print(a[i][j]);
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
if (a[i][j]==1){
System.out.print('Q');
}else{
System.out.print(" ");
}
}
}