gpt4 book ai didi

Java 如何在txt文件中显示和搜索相同的值,以便扫描并显示所有记录(如果值在记录中)

转载 作者:行者123 更新时间:2023-12-02 00:32:26 25 4
gpt4 key购买 nike

这是我的任务,我在文本文件中的记录中具有相同的值。但我只能找到第一个并显示第一个。如何找到具有该值的所有记录并显示它们。这是代码,

package projectsby;

import java.io.File;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class Find {
private static Scanner o;

public void openFile(){
try{
o = new Scanner(new File("/Users/e.h.j.hofman/NetBeansProjects/Projectsby/src/projectsby/Projects.txt"));
}

catch(Exception e) {
System.out.println("Could not find file");
}}

/**
*
* @param searchTerm
* @param filepath
*/
public void readEntries(String searchTerm, String filepath){

boolean found = false;
String Project = "";
String omschrijving = "";
String BU= "";
String afdeling = "";

try
{
o = new Scanner(new File(filepath));
//o.useDelimiter("[ \n]");
while(o.hasNext()
//&& !found )
{

Project = o.next();
omschrijving = o.next();
BU = o.next();
afdeling = o.next();

if(Project.equalsIgnoreCase(searchTerm))
{
found = true; }
}
if (found)
{

在这里,我怀疑当存在某种 while 循环时它会有所帮助。

JOptionPane.showMessageDialog
(null,"Project: " + Project + " " +omschrijving + "\nBU: "
+ BU + "\nAfdeling: " +afdeling);
} else {
JOptionPane.showMessageDialog(null,"Project not found");
}}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Error");
}}
public void closeFile(){
o.close();
}}

最佳答案

从代码格式中很难看出,但“if (found)”语句中的代码块只会在文件末尾执行,因为它位于 while 循环之外。也许该代码应该移至“if(Project.equalsIgnoreCase(searchTerm))”语句。然后,如果找到 searchTerm,它将在文件中的每条记录上执行。

那么“找到” boolean 值就没有理由了。

 while (o.hasNext()) {
...
if(Project.equalsIgnoreCase(searchTerm)) {
JOptionPane.showMessageDialog ...
}
}

关于Java 如何在txt文件中显示和搜索相同的值,以便扫描并显示所有记录(如果值在记录中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58001492/

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