Java 细节不足

Java 细节不足,java,Java,我正在处理一个项目,我定义了一个搜索功能,可以搜索我的客户文本文件,更不用说还有一个名为“记录”的文本文件,在项目中定义注册后,新客户详细信息将存储在该文件中。所以,每当我搜索特定的ID时,它都工作得很好,但问题是我希望它输出其余的细节,比如他/她的姓名、性别、年龄。我现在只有-->“找到了” 代码如下: public void searchfile(String input){ try{ String details, id, line; i

我正在处理一个项目,我定义了一个搜索功能,可以搜索我的客户文本文件,更不用说还有一个名为“记录”的文本文件,在项目中定义注册后,新客户详细信息将存储在该文件中。所以,每当我搜索特定的ID时,它都工作得很好,但问题是我希望它输出其余的细节,比如他/她的姓名、性别、年龄。我现在只有-->“找到了” 代码如下:

    public void searchfile(String input){

    try{

        String details, id, line;
        int count;
        Scanner housenumber = new Scanner(new File("records.txt"));
        while(housenumber.hasNext())
        {
            id = housenumber.next();
            line = housenumber.nextLine();
            if(input.equals(id))
            {

                JOptionPane.showMessageDialog(null,"It's Found" );
                break;
            }
            if(!housenumber.hasNext())      
                JOptionPane.showMessageDialog(null,"Sorry, ID Does Not Exist" );
        }
   }

     catch(IOException e)
   {
     System.out.print("File failure");
   }
};

在不知道您正在扫描的文件是如何格式化的情况下回答您的问题是相当困难的。如果格式如下所示:

id
name gender age
id
name2 gender age
etc.
id = housenumber.next();
line = housenumber.nextLine();
if(input.equals(id))
{    
    //This should the next line instead of just "It's found"
    JOptionPane.showMessageDialog(null,line);

    //Assuming the above file layout, you could then do something like this:
    String[] parts = line.split("\\s+"); //Splits on whitespace

    System.out.println("name: " + parts[0]);
    System.out.println("gender: " + parts[1]);
    System.out.println("age: " + parts[2]);
    break;
}
您可以尝试以下方法:

id
name gender age
id
name2 gender age
etc.
id = housenumber.next();
line = housenumber.nextLine();
if(input.equals(id))
{    
    //This should the next line instead of just "It's found"
    JOptionPane.showMessageDialog(null,line);

    //Assuming the above file layout, you could then do something like this:
    String[] parts = line.split("\\s+"); //Splits on whitespace

    System.out.println("name: " + parts[0]);
    System.out.println("gender: " + parts[1]);
    System.out.println("age: " + parts[2]);
    break;
}

谁知道呢。文件格式是什么?不要告诉我“这是一个文本文件”。是的,这是一个文本文件……然后你需要找一个文本文件专家。它们真的很贵。我认为你找不到免费的帮助。如果你上传了你试图解析的文件的样本,你会得到更好的答案。那么到底什么是有效的,什么是无效的呢?你必须在这里工作亲爱的rusmus当我把你的代码加起来的时候输出是空的我不知道怎么解决,