操纵数组java中的字符串

时间:2014-12-09 19:49:35

标签: java arrays

所以我应该初始化一个10x10矩阵并用不同的模式填充它,例如:

........................ 
........................ 
 ... ... ... ... ... ... 
 ... ... ... ... ... ... 
  ..  ..  ..  ..  ..  .. 
  ..  ..  ..  ..  ..  .. 
   .   .   .   .   .   . 
   .   .   .   .   .   . 

我将如何控制次数。字符出现在每个单元格中。我知道我可以遍历矩阵,在下一个偶数行后,我可以减少次数。角色出现但我该怎么做呢。

3 个答案:

答案 0 :(得分:0)

感谢您对此问题的更新。这里有一些代码,我相信你正在寻找的东西。

  public static String printDots(int numDots)
      {
        String dots = "";
        for(int i = 0; i < numDots; i++)
         {
        dots += ".";
    }

return dots;
}


public static void main(String[] args)
{

    String[][] matrix = new String[10][10];
    int numDots = 4;
    for (int i = 0; i < matrix.length; i++)
    {

        for(int j = 0; j < matrix[i].length; j++)
        {
                matrix[i][j] = printDots(numDots);
        }
        if(i%2 != 0)
            numDots--;
    }

    for(int i = 0; i < matrix.length; i++)
    {
        for(int j= 0; j < matrix[i].length; j++)
            System.out.println(matrix[i][j]);
    }
    }
}

答案 1 :(得分:0)

根据数组/矩阵的性质,您可能希望使用循环。在您的问题中,您可以使用一个循环遍历矩阵的行。要填充列,您可以使用另一个循环。某些伪代码可能看起来像

for (int i = 0; i < matrix.Rows; i++) //standard indexing loop
    var pattern = determinePrintingPattern(row)
    print(pattern)

特别是在你的问题中,看起来点的打印发生在6组4中,每个偶数行减少点数。所以

function returnPattern determinePrintingPattern(int row) //might look like pseudocoded
    for 6 iterations
        print 4 - row/2 dots //integer division is desirable and will truncate (drop the decimal)

答案 2 :(得分:0)

解决问题。

编写一个方法,创建一个长度为length的字符串,其中dots点正确定位在其中,即具有如下签名:

String dotty(int length, int dots) {
    // your code here
}

让它工作,然后编写一个方法来创建这些字符串的数组:

String[] dottyArray(int length, int dots, int size) {
    String[] result = new String[size];
    Arrays.fill(result, dotty(length, dots);
    return result;
}

然后创建一个循环来调用该方法来填充2D数组:

String[][] dottyGrid(int length, int columns, int rows) {
    String[][] result = new String[rows][];
    for (int row = 0; row < rows; row++) 
        result[row] = dottyArray(length, (rows - row / 2) / 2, columns);
    return result;
}

一个小&#34;技巧&#34;是整数除法截断了小数部分,它整齐地使点数逐步增加。