Java 我可以输出没有多余空间的数组吗?

Java 我可以输出没有多余空间的数组吗?,java,arrays,text-files,Java,Arrays,Text Files,我试图获取一个.txt文件的文本并将其信息传输到一个数组中,问题是,我得到的输出是单词,但输出的间隔太大。(数组必须是6*7)文件中有这样的文字:“四月是一个寒冷的日子,时钟敲了十三下。” import java.io.FileNotFoundException; 导入java.util.*; 公开课{ 公共静态void main(字符串[]args)引发FileNotFoundException{ java.io.File File=新的java.io.File(“2DArray.txt”);

我试图获取一个.txt文件的文本并将其信息传输到一个数组中,问题是,我得到的输出是单词,但输出的间隔太大。(数组必须是6*7)文件中有这样的文字:“四月是一个寒冷的日子,时钟敲了十三下。”

import java.io.FileNotFoundException;
导入java.util.*;
公开课{
公共静态void main(字符串[]args)引发FileNotFoundException{
java.io.File File=新的java.io.File(“2DArray.txt”);
扫描仪输入=新扫描仪(文件);
int TOTALLOW=6;
int totalColumn=7;
char[][]myArray=new char[totalRow][totalColumn];
file=newjava.io.file(“2DArray.txt”);
扫描仪=新扫描仪(文件);
对于(int row=0;scanner.hasnetline()&&row

我需要输出在一个6*7的空间中(每个空间填充一个字符或一个空格,在这里是“*”)。现在,程序输出整个字符串7次,它应该只打印一次格式化为6*7的字符串。如果单词重叠到下一行,并且如果所有单词都不适合数组,则可以。下面是我希望输出的外观示例:[I,t,w,a,s,][a,b,r,I,g,h][t,c,o,l,d,][d,a,a,y,I,n,][a,p,r,I,l,][a,n,d,t,h,e]。

上述代码将按预期提供输出

import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;

public class Sample {

  public static void main(String[] args) throws FileNotFoundException {
    java.io.File file = new java.io.File("2DArray.txt");

    int totalRow = 6;
    int totalColumn = 7;
    char[][] myArray = new char[totalRow][totalColumn];
    Scanner scanner = new Scanner(file);
    file = new java.io.File("2DArray.txt");
    int rowIndex = 0;


    while (scanner.hasNextLine()) {
      // Read line from file and convert to array
      char[] chars = scanner.nextLine().toCharArray();

      for (int charIndex = 0; rowIndex < totalRow && charIndex < chars.length; rowIndex++, charIndex =
          charIndex + totalColumn) {
        // Copy the X=totalColumn chars from the above array to row
        System.arraycopy(chars, charIndex, myArray[rowIndex], 0,
            Math.min(totalColumn, chars.length - charIndex));
      }
    }

    for (char[] ar : myArray) {
      System.out.println(Arrays.toString(ar));
    }
    scanner.close();
  }
}

代码基于您提供的已确认输出,需要进行任何更改-请让我知道

您好,也许可以使用类似的方法在字符串中填充空格:
string.format(“%-10s”,“我的字符串”)。(番石榴还有
Strings.pad*
功能,这可能会有所帮助。)@IronMan我对代码做了一些修改,以提高效率,但我发现了一个新问题,我编辑了这篇文章。有什么想法吗?一个6*7的数组可以容纳42个字符。您的输入字符串包含73个字符。请解释为什么要这样做(这是一个不寻常的问题陈述!),并提供一个您想要的输出示例。您正在内部循环中打印
chars
。当然,这将最多打印7次
chars
,取决于
chars
@kimbert的长度。这是一项作业,我不知道为什么需要比提供的空格长的字符串,但这就是我得到的。应该是这样的:
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;

public class Sample {

  public static void main(String[] args) throws FileNotFoundException {
    java.io.File file = new java.io.File("2DArray.txt");

    int totalRow = 6;
    int totalColumn = 7;
    char[][] myArray = new char[totalRow][totalColumn];
    Scanner scanner = new Scanner(file);
    file = new java.io.File("2DArray.txt");
    int rowIndex = 0;


    while (scanner.hasNextLine()) {
      // Read line from file and convert to array
      char[] chars = scanner.nextLine().toCharArray();

      for (int charIndex = 0; rowIndex < totalRow && charIndex < chars.length; rowIndex++, charIndex =
          charIndex + totalColumn) {
        // Copy the X=totalColumn chars from the above array to row
        System.arraycopy(chars, charIndex, myArray[rowIndex], 0,
            Math.min(totalColumn, chars.length - charIndex));
      }
    }

    for (char[] ar : myArray) {
      System.out.println(Arrays.toString(ar));
    }
    scanner.close();
  }
}
 E.g. Input -   Line1: It was a bri   
                Line2: ght cold day in April, and the clocks were striking thirteen.