开发者社区> 问答> 正文

我不知道如何将char'x'向下移动到下一行和同一列。有人可以写这个给我一个例子吗?

You are allowed to use the following methods from the Java API:

moveAllXsdown将一个char和一个二维char数组作为输入,但不返回任何内容:该方法应将每次出现的输入字符都“下移”到数组的下一行,并在同一列。如果无法向下移动字符(位于“底部”行或下面的行没有该列),则不会移动该字符。不要使用字符串来解决此问题。

char [] []面板= {{'a','b','c','X'},{'d','X','e','f','X'},{' X','X','i'},{'X','j','k','l'}}; HW2.moveAllXsDown('X',board)板{{a,b,c,f},{d,j,e,X,X},{X,X,i},{X,X,k,l }}

这是我的代码:

public static void moveAllXsDown(char a, char[][] arr){ for(int i = 0; i<arr.length-1; i++){ for(int j = 0; j<arr[i].length; j++){
if(arr[i+1].length>arr[i].length){ char [][] copyarr = new char [i][j]; arr [i][j] = copyarr [i][j] ; } else if(i+2==arr.length){ char [][] copyarr = new char [i][j]; arr [i][j] = copyarr [i][j] ; }

            else{
                 if(arr[i][j] == a){
                    arr[i+1][j] = arr[i][j];
                    arr[i][j] = arr[i+1][j];
                 }
            }



            }
       }

  }

展开
收起
小六码奴 2019-10-16 14:08:59 8794 0
1 条回答
写回答
取消 提交回答
  • 在前两个ifs中,除了获取arrayindexoutofboundexception,实际上什么都不做。你 正在创建一个新的字符数组,它是i j big,所以假设它是12 big。这是空的,你尝试在索引12上写入长度为12的数组,但索引只转到0 1。此外,在最后一个if部分中,你试图切换这两个字符,但你所做的只是使它们相同,例如你将a设置为char b,然后将b设置为char a,但是a设置为b,所以发生的一切就是将a设置为b。你需要创建一个帮助变量,将其称为c,然后将c设置为b,将b设置为a,然后将a设置为c。

    2019-10-16 17:27:35
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载