Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java数组中操作字符串_Java_Arrays - Fatal编程技术网

在java数组中操作字符串

在java数组中操作字符串,java,arrays,Java,Arrays,所以我应该初始化一个10x10矩阵,并用不同的模式填充它,例如: ........................ ........................ ... ... ... ... ... ... ... ... ... ... ... ... .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . 我将如何去控制的

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

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

我将如何去控制的次数。字符出现在每个单元格中。我知道我可以在矩阵中循环,在下一个偶数行之后,我可以减少循环次数。字符出现,但我该如何执行此操作。

感谢您更新此问题。这里有一些代码,我相信它能满足您的需求

  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]);
    }
    }
}
公共静态字符串打印点(int numDots)
{
串点=”;
for(int i=0;i
根据数组/矩阵的性质,您可能希望使用循环。在您的问题中,可以使用一个循环遍历矩阵的行。要填充列,可以使用另一个循环。一些伪代码可能看起来像

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

把问题分解

编写一个方法,创建一个长度为
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;
}
然后创建一个循环来调用该方法以填充二维数组:

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;
}
String[]dottyGrid(int-length、int-columns、int-rows){
字符串[][]结果=新字符串[行][];
对于(int row=0;row

一个小“技巧”是整数除法截断了小数部分,这使得点的数量一步一步地增加了2。

到目前为止,你有没有尝试过什么,或者你只是在寻求一般性的建议?老实说,我在寻求一般性的建议。不一定是解决方案,只是一些想法,因为除了硬编码,我不知道从哪里开始:(对于前两行,有4.s。接下来的两行有3.s等,直到最后两行的所有单元格都是空白的fyi-最后一个for循环只是一个检查,以确保矩阵输出您想要的内容,它实际上对代码没有任何帮助。如果您喜欢答案,请接受作为答案并进行投票:)当然,如果这不是你想要的,请让我知道,我可以改变it@JuanBattini此代码是否适用于您?如果适用,请接受作为答案/投票:)
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;
}