2014-09-26 58 views
1

任何人都可以帮助我吗? 我正在完成这项任务,我几乎完成了我的代码,除了我不知道如何通过输入姓名来搜索客户列表。 !如何使用扫描仪在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); 
        } 
    
+1

您需要搜索哪些客户?他们是否相同从文件读取,或者用户指定要搜索哪些客户?你被困住的问题有两个部分。一个是获取名称来搜索。这部分可以使用'扫描仪'。另一个实际上是执行搜索。这不应该使用'扫描仪'。 – 2014-09-26 18:04:35

回答

1

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

要什么名字读来搜索,我要重复一下user3567040说:

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

(尽管你可能需要2 Strings:一为头名,而另一个用于最后

+0

这是我打印客户列表的方式,客户列表可以是任意3个随机人员。这是代码............ public String toString(){ return“First Name:”+ this.name +“\ nLast Name:”+ this.lastName +“\ nEmail:”+ this.email + “\ n” 个; } – HenryDev 2014-09-26 17:53:35

+0

但如何搜索:( – HenryDev 2014-09-26 17:55:46

+0

我想我需要使用扫描仪,但我不知道如何 – HenryDev 2014-09-26 17:58:11

0

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

+0

I需要使用扫描仪,但我不知道如何 – HenryDev 2014-09-26 17:57:54

+0

没有解决如何让他们*在*那里,他们已经在列表中的问题 – 2014-09-26 18:05:20

+0

客户在列表中,但我需要允许用户键入客户的名称,例如迈克尔怀特...以及如何做到这一点?继承人我的整个代码的链接http://pastebin.com/yArT5ww9 – HenryDev 2014-09-26 18:09:33