Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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_String - Fatal编程技术网

Java 将字符串网格转换为多行字符串

Java 将字符串网格转换为多行字符串,java,arrays,string,Java,Arrays,String,TL;DR版本 基本上,Java ASCII艺术工具可以输出潜在字符点网格的内容,这些字符点以其出现的模式显示。如果转换为新字体或其他所有字符宽度相同的字体,理论上输出应类似于用户创建的模式 详细版本 我试图编写一个程序,创建一个方框网格;网格的面积由用户指定,因此宽度和高度仅为-int,称为宽度和高度。到目前为止一切都很顺利,没有任何问题 问题是,网格包含的框是CharPoint.class的实例,每个实例都包含一个一个字母的字符串,我将这个字符串命名为contents,因为在选择CharPo

TL;DR版本

基本上,Java ASCII艺术工具可以输出潜在字符点网格的内容,这些字符点以其出现的模式显示。如果转换为新字体或其他所有字符宽度相同的字体,理论上输出应类似于用户创建的模式

详细版本

我试图编写一个程序,创建一个方框网格;网格的面积由用户指定,因此宽度和高度仅为-int,称为宽度和高度。到目前为止一切都很顺利,没有任何问题

问题是,网格包含的框是CharPoint.class的实例,每个实例都包含一个一个字母的字符串,我将这个字符串命名为contents,因为在选择CharPoint时没有更好的术语,这是由用户的输入决定的。如果内容字符串为null,则字符点将显示为用户为其前景颜色选择的颜色中的空框

我希望遍历每个连续行中的每一列,并将该CharPoint内容的值添加到输出函数的输出字符串中,该输出函数将按它们出现的顺序返回所有点的值。每行是一个字符串,因此,如果用户有十行十列,那么将有十个字符串。每个空空间在输出中表示为一个空空间字符串

实际上,我在安排这件事上遇到了一些困难。我尝试通过一个double for循环,该循环通过每行中的每一列,如下所示:

for (int row = 0; row < this.height; row++)
{
    for (int column = 0; column < this.width; column++)
    {
        CharPoint cp = (CharPoint) charPoints.get(column + (row * 10));
        // other code here
    }
}

确定要查看的字符点后,函数应获取字符点的内容,并将其添加到初始长度为0的输出字符串的末尾,每行添加一个新的字符点。在编译完整行字符串后,它应该通过System.out.println打印它,暂时忽略缺少适当的用户可访问输出。不幸的是,我似乎找不到一个好的方法来做这件事,所以我不得不在这里发布这个可笑的具体问题。

我希望你不要生气,但这看起来确实像是一个家庭作业问题。我将用两个相关问题的解决方案来回答你的问题,希望能对你有所帮助

//Function to convert a list of characters to a String and print it
public void printCharactersAsString(List<Character> characters) {
  StringBuilder stringBuilder = new StringBuilder();
  for(Character c : characters) {
    stringBuilder.append(c);
  }
  String finalString = stringBuilder.toString();
  System.out.println(finalString);
}

//Function to sum up each row and print the sum
public void printSums(List<Integer> grid, int width, int height) {
  for(int row = 0; row < height; row++) {
    int sum = 0;
    for(int col = 0; col < width; col++) {
      int number = grid.get(col + row*width);
      sum += number;
    }
    System.out.println(sum);
  }
}