Java如何在txt文件中显示和搜索相同的值,以便在值位于记录中时扫描和显示所有记录
这是我的任务,我在文本文件的记录中有相同的值。 但我只能找到第一个并显示第一个。 如何找到具有该值的所有记录并显示它们。 这是密码Java如何在txt文件中显示和搜索相同的值,以便在值位于记录中时扫描和显示所有记录,java,Java,这是我的任务,我在文本文件的记录中有相同的值。 但我只能找到第一个并显示第一个。 如何找到具有该值的所有记录并显示它们。 这是密码 package projectsby; import java.io.File; import java.util.Scanner; import javax.swing.JOptionPane; public class Find { private static Scanner o; public void openFile
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,它将在文件中的每条记录上执行 那么就没有理由使用“find”布尔值
你有什么意见?你现在看到了什么?你期望什么样的产出?
while (o.hasNext()) {
...
if(Project.equalsIgnoreCase(searchTerm)) {
JOptionPane.showMessageDialog ...
}
}