如何使用Scanner搜索java中的客户列表:

时间:2014-09-26 17:40:30

标签: java

有人能帮帮我吗? 我正在完成这项任务,我几乎完成了我的代码,除了我不知道如何通过输入他们的名字来搜索客户列表。 !

  • 从文件中获取客户列表
  • 客户包含名字,姓氏和电子邮件地址
  • 按姓氏排序列表
  • 在列表中搜索给定名称
  • 列出项目

    import java.util.*;
    import java.io.*;
    
    public class computer {
    
    
    public static void main(String args[]){
        Scanner console = new Scanner(System.in);
    
        //create a file named myFile.txt
        createFile object1 = new  createFile();
        object1.openFile();
        object1.addRecords();
        object1.closeFile();
    
        //This code reads the File and outputs it on the screen
        System.out.println("-----------------------------------------------------------------------"); 
        System.out.println("This is the list of customers being read from a file called myFile.txt ");
        System.out.println("-----------------------------------------------------------------------");
        readFile r = new readFile();
        r.openFile();
        r.readfile();
        r.closeFile();
    
    
        LinkedList<customers> list = new LinkedList<customers>();
        try
        {
          Scanner file = new Scanner(new File("myFile.txt"));
          while(file.hasNext())
          {
            String name = file.next();
            String lname = file.next();
            String email = file.next();
            list.add(new customers(name,lname, email));
          }
        }
        catch (Exception e) {
            // TODO: handle exception
        }
        Collections.sort(list,new Mycustomers());
        System.out.println("This is the list of customers sorted by their last names: ");
        System.out.println("--------------------------------------------------------------");
        System.out.println();
        for(customers cu:list){
            System.out.println(cu);
        }
    

2 个答案:

答案 0 :(得分:1)

从打印列表的方式开始,而不是打印每个列表,首先将每个列表中的名称与您要查找的名称进行比较(如果没有关于customers的更多详细信息,则无法提供更多详细信息);如果它匹配,做你需要做的任何事情和break循环。

要阅读要搜索的名称,我将重复user3567040所说的内容:

Scanner s = new Scanner(System.in); 
String name =s.nextLine();

(尽管您可能需要2 Strings:一个用于名字,另一个用于最后一个名称。

答案 1 :(得分:0)

您可以使用HashTable或HashMap作为第一个+姓氏的哈希值。并根据输入的给定名称的哈希进行搜索。