java - 初学者Java数组问题

标签 java arrays

我正在尝试使用数组输出 X 的平方。正方形的对角线将用“X”填充,空的将用空格“_”填充。

这是我得到的代码:

public static char[][] square(int z) {
    int size=5;
    char[][] myArr = new char[size][size];
    for (int c=0;c<size;c++)
        myArr[c][c]='X';
    for (int r=0;r<size;r++)
    {
        for (int col=size-1;col>=0;col--)//put X
        {
            myArr[r][col]='X';
        }
    }
    for(int count=0;count<size;count++){
        if (myArr[count][count]!='X')
            myArr[count][count]=' ';
    }

    return myArr;

}

这应该可以工作 - 我在纸上手动运行它,一切都应该很好。可能是什么问题?

最佳答案

问题可能出在这里:

for (int r=0;r<size;r++)
{
    for (int col=size-1;col>=0;col--)//put X
    {
        myArr[r][col]='X';
    }
}

您正在遍历整个正方形(大小 * 大小),而不仅仅是绘制东北 - 西南对角线。

尝试用这个替换它:

for (int r=0;r<size;r++)
{
    myArr[r][size - r] = 'X'
}

编辑:为了让你的代码更紧凑:

public static char[][] square(int size) {
    char[][] myArr = new char[size][size];
    for (int c = 0; c < size; c++) {
        for (int r = 0; r < size; r++) {
            if ((c == r) || ( c == size - r)) {
                myArr[r][c] = 'X';
            } else { 
                myArr[r][c] = ' ';
            }
        }
    }
    return myArr;
}

关于java - 初学者Java数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799543/

相关文章:

java - 无法使用 Glassfish 设置 SSL

java - 我无法使用 Spring Security 登录

c - 为什么指针和数组不一样: Need justification on quote

c++ - 数组索引是否为 constexpr? GCC不一致?

arrays - 在两个对象数组之间过滤,避免嵌套 for 循环

java - 为什么按键绑定(bind)会消失?

java - hibernate vs weblogic antlr 版本

java - findViewById 看不到我的 EditText 的 ID

Java集合列表内存结构

arrays - 将复杂记录写入文件