【问题标题】:Searching for a string, adding a string, and removing a string in a file在文件中搜索字符串、添加字符串和删除字符串
【发布时间】:2016-03-03 22:27:58
【问题描述】:

我有一个包含人员对象列表的文件。一个字符串名字,字符串姓氏,& int id。我需要一种对其进行排序的方法,一种向数组添加名称的方法,一种从列表中删除名称的方法,以及一种搜索列表的方法。 更新:这些方法有效,但我需要在不同类中我的主要方法的 switch 语句中使用这些方法。我需要重命名它们还是我该怎么做? 公共类aList { 字符串 fn; 字符串 ln; 内部标识; 静态人 p;

List<Person> myList = new ArrayList<Person>();

public aList(File fi) throws FileNotFoundException {
    Scanner sc = new Scanner(fi);
    while (sc.hasNext()) {
        fn = sc.next();
        ln = sc.next();
        id = sc.nextInt();
        System.out.println(fn + " " + ln + " " + id);
        p = new Person(fn, ln, id);
        myList.add(p);
    }
    System.out.println("After reading in the file \n");
    for (int i = 0; i < myList.size(); i++) {
        System.out.print(myList.get(i).toString() + "\t");
    }
    System.out.println("\n");
    sc.close();

}

public void sortIt() {
    Collections.sort(myList);
    System.out.println(" After sorting \n");
    for (int i = 0; i < myList.size(); i++) {
        System.out.print(myList.get(i).toString() + "\t");
    }
}

public void add(String name) {
    myList.add(new Person(name, name, id));
}

public void remove(String name) {
    for (Person p : myList) {
        if (p.getName().equals(name)) {
            myList.remove(p);
        } else
            System.out.print("Not a valid name");
    }
}

public Person find(String name) {
    for (Person p : myList) {
        if (p.getName().equals(name)) {
            return p;

        }
    }
    return p;
}

}

【问题讨论】:

  • 请比“它不起作用”更具体。当你尝试时发生了什么?

标签: java file filewriter


【解决方案1】:

以下是添加、删除、查找的一些候选对象:

    public void add(String name){
        myList.add(new Person(name));//assumes the constructor takes in name param
    }
    public void remove(String name){
        for (Person p : myList){
           if (p.getName().equals(name)){//assumes person class has a getName() method
               myList.remove(p);
           }
    }
    public void find(String name){
        for (Person p : myList){
           if (p.getName().equals(name)){//assumes person class has a getName() method
               return p;
           }
    }

不过,重新排序,我必须知道您的排序依据是什么 - 是字典顺序吗?

【讨论】:

    猜你喜欢
    • 2014-09-07
    • 1970-01-01
    • 2013-06-16
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多