gpt4 book ai didi

java - 程序只读取文件的第一行

转载 作者:行者123 更新时间:2023-12-01 18:35:12 26 4
gpt4 key购买 nike

我正在尝试读取一个文件,其中一行包含名称,第二行包含数字。第三行是名称,第四行是数字,依此类推。

我在main方法上测试了它。例如,我的文件包含名称“Bobby”,他的电话号码是123456,当我运行lookUpEntry(“Bobby”)时,我应该把他的电话号码返回给我。如果名称“Bobby”是文件中的第一个名称,则此方法有效。如果不是第一个,程序似乎无法识别该名称并返回空值。一直在破解它,但无法看到问题所在。如果您看到的话请指教。谢谢。

//DirectoryEntry is a class and contains a String name and String telno along with set/ get methods for them. 
private DirectoryEntry[] theDirectory = new DirectoryEntry[100];
private int size = 0;

public void loadData(String sourceName) {
try {
Scanner in = new Scanner(new File(sourceName));

while (in.hasNextLine()){
String name = in.nextLine();
String telno = in.nextLine();
theDirectory[size] = new DirectoryEntry(name, telno);
size++;
}
in.close();
}catch (FileNotFoundException e){
System.out.println("File not found.");
}
}

public String lookUpEntry(String name) {
find(name);
if (find(name) >= 0){
return theDirectory[find(name)].getNumber();
}
else{
return null;
}
}

public int find(String name){
for (int x=0; x < theDirectory.length; x++){
if (theDirectory[x].getName().equals(name)){
return x;
}
else{
return -1;
}
}
return -1;
}

以下是文件内容:

艾伦A

123456

鲍比B

234567

查理C

456789

丹尼尔D

567891

埃里克·E

787454

最佳答案

在 find 方法中,您遍历数组,但使用 if, else block 。基本上,如果您要查找的名称不在索引 0 处,代码将跳转到 else 语句并返回 -1。

编辑:等等,抱歉,无论如何我都没有看到您在主代码中使用该函数...仍然需要修复一些问题。

编辑2:那不是你的主要方法...再划一遍...

固定代码:

public int find(String name){
for (int x=0; x < theDirectory.length; x++){
if (theDirectory[x].getName() != null && theDirectory[x].getName().equals(name)){
return x;
}
}
return -1;
}

关于java - 程序只读取文件的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22304129/

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