gpt4 book ai didi

java - 如何将文件中的数据插入到对象中

转载 作者:行者123 更新时间:2023-12-02 08:46:13 25 4
gpt4 key购买 nike

我需要一些帮助,我有一个 4x4 的矩阵,显示了一座山,在 Mountain.txt 中有山区的高度:

 1 1 1 1        
1 2 3 1
1 2 2 1
1 1 1 1

文件 Rocks.txt 具有每个区域的类型或岩石:

石头石头石头石头
石 砂 砂石
石砂砂
沙沙沙沙

Public class Mountain {       
int height;
String typeRock;
public Mountain (int height, String typeRock) {
this.height = height;
this.typeRock = typeRock;
};
}

如何从两个不同的文件中读取数据并用它来创建对象,例如

Mountain zone00 = new Mountain(1, stone);
Mountain zone01 = new Mountain(1, stone);
Mountain zone11 = new Mountain(2, sand);

等等...

最佳答案

从目录加载文件可以像这样完成:

public String loadFile(String path) {
StringBuilder builder = new StringBuilder();

try {
BufferedReader br = new BufferedReader(new FileReader(path));
String line;
while((line = br.readLine()) != null) {
builder.append(line + "\n");
}

br.close();
} catch(IOException e ) {
e.printStackTrace();
}

return builder.toString();
}

您可以知道使用此方法将两个文件加载到字符串中:

String mountainData = loadFile("Mountain.txt");
String rockData = loadFile("Rpcks.txt");

您现在可以拆分这些字符串:

String[] mountainsTokens = mountainData.split("\\s+");
String[] rockTokens = rockData.split("\\s+");

之后你只需要创建你的山脉。因此,你要遍历矩阵的每个元素(这里的大小似乎是 4):

Mountain[][] zones = new Mountain[4][4];
for(int y = 0; y < 4; y++) {
for(int x = 0; x < 4; x++) {
mountains[y][x] = new Mountain(Integer.parseInt(mountainData[x + y * 4]), rockData[x + y * 4]);
}
}

为此,您必须将一维的内容转换为二维的内容 (x+y*4) 此外,您必须使用 Integer.parseInt() 将 String 转换为 int。您可能还必须用 try-catch 包围。顺便说一句,我肯定会像上面那样将山脉保存在二维阵列中。这使得一切变得更加容易(而不是 zone00,您可以编写 zone[0][0])。

我希望这有帮助。

关于java - 如何将文件中的数据插入到对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61067015/

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