更改2D阵列中的多个元素

时间:2015-02-15 07:44:15

标签: java arrays 2d element

嗨,所以我是Java的初学者,并不是那么擅长它。但我必须创建一个战舰计划。方向说用户必须输入长度为2,3和4的3艘不同战舰的左上角坐标和方向(水平和垂直)。因此,当用户输入他们希望船的位置的行和列时要进入,我必须替换7 x 7数组中的元素(这是“ - ”),而是将“s”替换为船只。但必须在用户想要的地方进行更改,并根据船舶的长度来更改空间

到目前为止,我有这个,但它不起作用。

System.out.println("What row would you like to place the 2 length ship?");
    int row = scan.nextInt();
    System.out.println("What column would you like to place the 2 length ship?");
    int col = scan.nextInt();
    System.out.println("Horizontally or vertically?");
    String hv = scan.next();

char [] [] brdState = new char [7][7];
     for (int r = 0; r < brdState.length; r++)
     {
         for ( int c = 0; c < brdState[r].length; c++)
         {
             brdState [r][c] = '-';
             System.out.print(brdState[r][c] + "\t");
         }
        System.out.println();

if ( hv == "h" || hv == "H");
    {
        int rl = (row - 1);
        for (int c = col; c < col; c++)
        {
            for ( int r = rl; r <= row; r++)
            {
                brdState[row][col] = 's';
                System.out.print(brdState[r][col] + "\t");
                brdState[r][c] = '-';
                System.out.println(brdState[r][c] + "\t");

            }

        }
    }

我需要代码处理用户想要长度为2的船的位置,然后是左边的一个元素(水平)或正上方(垂直)。但我无法正确编程。

1 个答案:

答案 0 :(得分:1)

您需要更改此行:

if ( hv == "h" || hv == "H");

if ( hv.equalsIgnoreCase("H"))
             ^^^              ^

这意味着,你不需要在if结尾处使用分号,这使得它成为空语句,即无论条件是否满足,{}之间的代码块将始终执行。同时在比较两个字符串时,您需要使用equals方法。