gpt4 book ai didi

java - 二维数组无法正确输入

转载 作者:行者123 更新时间:2023-11-29 06:06:29 24 4
gpt4 key购买 nike

我在获取分配的二维数组输入时遇到问题。基本上我必须创建一个在屏幕上爬行并写入我们名字的 ASCII 图像的错误。我们必须从文本文件中获取输入,所以我认为最好的做法是为文件中的每个字符创建一个二维数组,并让它根据每个位置中的字符来确定它的作用。但是它总是显示二维数组具有相同的内容(如下所示)

[[C@b1c5fa

下面是类的例子,tester类,txt文件的例子。我怎样才能让它显示正确的输入?

错误类

import java.io.*;
import java.util.*;

public class Bug
{

private int startingPoint;
private char mrBug;
private char placeholder;
private int postition;
private int matrixLength;
private int matrixRows;
private String lineGet;
private String txtFile;
private char[][] Data = new char[3][];


/**
Constructs a computer class with title, days, time and room
*/
public Bug(int initialPosition, char bug, String inputFile)
{
startingPoint = initialPosition;
mrBug = bug;
txtFile = inputFile;
}


public void matrixPrinter()
{
for(int row = 0; row < Data.length; row++)
{
for(int col = 0; col < Data[row].length; col++)
{
System.out.print(Data[row][col]);
}
System.out.print("\n");
}

}//End of matrixBuilder Method

public void matrixBuilder()
{
Scanner in = new Scanner(txtFile);
matrixRows = 0;
while (in.hasNextLine())
{
lineGet = in.next();
matrixLength = lineGet.length();
Data[matrixRows] = new char[matrixLength];
for(int i = 0; i < matrixLength; i++)
{
placeholder = lineGet.charAt(i);
Data[matrixRows][i]= placeholder;

}//End of For
matrixRows++;
}//End of While
in.close();
}//End of matrixBuilder Method

/**
Gets the title
@return the title
*/
public void turn()
{
//return title;

}

public void move()
{
// your work here
}

/**
Gets Postition
@return the postition
*/
public int getPostion()
{
return postition;

}
}

http://pastebin.com/g9LWFyXQ

漏洞测试员

import java.util.*;
import java.io.*;

public class BugTester
{
public static void main(String[] args)
{
int start = 0;
char bugSymbol = 'a';
String inputFile = "peter.txt";
Bug crawler1 = new Bug(start,bugSymbol,inputFile);
crawler1.matrixBuilder();
crawler1.matrixPrinter();

}
}

文本文件:

/#****#****#*****#****#****#****#\
/#*##*#*######*###*####*##*#*##*#\
/#****#****###*###****#****####*#\
/#*####*######*###*####*#*#####*#\
/#*####****###*###****#*##*####*#\

最佳答案

您看到的是数组对象(其“签名”)的内部表示。

如果你想打印一个数组,你需要遍历它的元素。因为它是二维的,所以只需使用两个嵌套的 for 循环。

其他问题:

  • 您正在使用 String 初始化您的 Scanner,但您想要的是使用 File 对其进行初始化。您需要使用您的文件名创建一个新的 File 对象,并将其传递给 Scanner 构造函数,以处理可能的异常
  • 您的文件有四行,但是您的Data 数组只有三行。要么扩大数组,要么在读取数组可以容纳的行数后退出输入循环。

关于java - 二维数组无法正确输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com