[英]How do I create a class to sort a file in java
我讓程序從用戶讀取文件(包含名字和姓氏)並打印出來。 現在,我需要編寫一個方法來按姓氏對文件內容進行排序,以在主目錄中調用。 我的問題是從哪里開始。 我開始為sortFile做我的課,但被困在什至開始的地方。
package javaproject1;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
public class JavaProject1 {
public static void main(String[] args) throws FileNotFoundException
{
String check = "y";
do{
Scanner fileRead = new Scanner(System.in);
System.out.println("Enter the name of the file: ");
File myFile = new File(fileRead.next());
Scanner scanTwo = new Scanner(myFile);
while(scanTwo.hasNext())
{
String i = scanTwo.next();
String j = scanTwo.next();
String sortLast;
System.out.println(i + " " + j + " ");
}
System.out.println();
Scanner anw = new Scanner(System.in);
System.out.println("Add another? y/n ");
check = anw.next();
}while(check.equals("y"));
}
public File sortFile(String sortLast)
{
}
}
創建一個實現Comparable
接口的Person
類:
public class Person implements Comparable<Person> {
protected String firstName;
protected String lastName;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
@Override
public String toString() {
return firstName + " " + lastName;
}
@Override
public int compareTo(Person o) {
return this.lastName.compareTo(o.lastName);
}
}
該類重寫compareTo
方法,定義排序。
然后,您可以將讀取的文件內容存儲在TreeSet
類的SortedSet<Person>
。
假設i
是名字, j
是姓氏,請在代碼中添加以下兩行:
String check = "y";
SortedSet<Person> persons = new TreeSet<>();
和
System.out.println(i + " " + j + " ");
persons.add(new Person(i, j));
persons
將始終包含您到目前為止閱讀的文件內容,並按姓氏排序。
}while(check.equals("y"));
然后,您可以執行以下操作:
for (Person person : persons) {
System.out.println(person);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.