0

这是我第一次使用二维数组。我从文本文件中读取了 4 行字符串,并逐个字符地提取它们。我无法用我提取的那些字符初始化数组。当我尝试打印我的数组时,我一直在获取内存位置,所以我假设数组没有正确初始化。任何帮助,将不胜感激。谢谢

公开课 acsiiArt {

public static void main(String[] args) throws IOException
{
File file = new File("test.txt");
Scanner inputFile = new Scanner(file);

while (inputFile.hasNext())
{
    inputFile.nextInt(); 
    while (inputFile.hasNext())
    {
        inputFile.nextInt();
    while (inputFile.hasNext())
    {   
        char array [][]= new char[4][4];
        String letters = inputFile.nextLine(); 
        for(int i =0; i < letters.length(); i++)
        {
        char results = letters.charAt(i);
        for (int row = 0; row < 4;row ++)
        {
            array[row] = new char[row+1];
            for (int col =0; col< row+1; col++)
                array[row][col]= results; 
            System.out.println(array);
        }

        }    
    }   
    }
}
}

}

4

2 回答 2

0

您将看到Object#toSting2D 的表示输出arraynextLine在这种情况下,使用then using遍历文件substringtoCharArray创建数组可能会更简单。

于 2013-10-29T01:24:22.170 回答
0

我猜文件开头的前两个整数告诉尺寸,对吧?从我的脑海中写了这个,所以它可能没有编译,但应该给你一个想法:

public class ACSIIArt {

public static void main(String[] args) throws IOException {
    File file = new File("test.txt");
    Scanner inputFile = new Scanner(file);
    int x = inputFile.nextInt();
    int y = inputFile.nextInt(); 

    char [][] letters = new char[x][y]; 
    int currentLine = 0;
    String line = null;
    while((line = inputFile.nextLine()) != null) {
        for(int i = 0; i < line.length(); i++) {
             letters[currentLine][i] = line.charAt(i);
        }
    }

    for(int i = 0; i < x; i++) {
        for(int j = 0; j < y; j++) {
             System.out.print(letters[i][j]);
        }
        System.out.print(System.getProperty("line.separator"));
    }
 }

这是基本的方法。有更多奇特的方法可以做到这一点,line.toCharArray();但我认为首先了解基础知识很重要。

于 2013-10-29T01:24:45.047 回答