gpt4 book ai didi

java - 从文本文件获取对象

转载 作者:行者123 更新时间:2023-12-02 05:16:41 24 4
gpt4 key购买 nike

我有一个像这样的文本文件;

    7-Georgia
1-Andrew
6-John
8-Luke
9-Erica
3-Kim
2-Jude
5-Phil
4-Leo

第一列是 id,第二列是名称。我如何获得这些 id 和名称?到目前为止我写了这个;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
public class Main {

@SuppressWarnings("resource")
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
@SuppressWarnings("unused")

Scanner fromFile = new Scanner(new File("id_name.txt"));
fromFile.useDelimiter("-");

while(fromFile.hasNext()){
String temp = fromFile.next();
System.out.println(temp);
}

while(fromFile.hasNext()){
String temp= fromFile.next();
int[] fileID;
fileID= new int[9];

for(int i=0; i<9; i++){
fileID[i]= Integer.parseInt(temp);
}

System.out.println(fileID);
}
}
}

但是这并没有得到 id。我不知道如何解决这个问题,如果您能帮助我,我将不胜感激。

最佳答案

您的代码中有两个 while 循环。通常,一个 while 循环将遍历每一项,直到条件不再成立。我认为您需要重新设计它以获得更好的“控制流”,这可能意味着仅使用一个 while 循环(使用部分来获取数字,然后获取名称。

我想您正在寻找第二个 while 循环的结果,但是当您到达它时,第一个 while 循环将耗尽您的所有数据。

最后,打印数组将打印出数组引用标识符。如果要实际打印数组的内容,则需要对数组中的元素进行循环,并且需要显式打印每个数组元素。

作为上述数组打印技术(您应该掌握)的替代方法,您还可以使用 Arrays.toString(<insert array here>)方法调用。但是,在许多情况下,它会给您提供不需要的格式。这就是为什么您也需要了解上述技术。

此外,您还有一个隐藏的问题。您(在第二个 while 循环中)假设只有九个输入。密切注意你所写的内容。每次你必须伸手去拿一个数字时,请考虑它是否是一个“神奇”的数字。魔数(Magic Number)是代码中的数字,没有任何解释或存在原因。它们是代码中错误的指示器,这些错误是由可能无法经受时间考验的假设所造成的。

例如,您正在使用号码9因为你已经看到了输入文件。下一个输入文件中可能不会有九个条目,如果您给它一个包含八个条目的输入或一个包含十个条目的输入,您的程序可能无法正常工作。也许您应该重写循环以删除魔数(Magic Number),方法是在仍然有(一些)输入的情况下进行逻辑处理。

关于java - 从文本文件获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26885853/

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