我想要做的就是创建一个排序程序,根据用户在命令行中指定的内容对PatientRecords进行排序。
程序在命令行上运行,用户将输入一个文本文件,其中包含记录作为第一个参数(args [0]),以及他希望如何将其排序为第二个参数(args [1])。
文本文件的格式为:Lastname, Firstname, Age, Roomnumber
每行。
未指定行数且可能会有所不同,因此我使用的是数组列表。
我可以阅读这些内容,然后我可以按照姓氏对其进行排序,但我觉得这样做的唯一方法是将逗号分隔,并用不同的方法单独理解它们。
如果有更好的方式请告诉我,我对任何事情持开放态度。我的主要问题是让程序按不同的类别排序,例如Age或RoomNumber。
这是我的代码:
import java.io.*;
import java.util.*;
public class PatientRecord
{
public static void main(String args[]) {
System.out.println("Servando Hernandez");
System.out.println("Patient sorting Program.");
Scanner scan = null;
try
{
scan = new Scanner(new File(args[0]));
}
catch (FileNotFoundException e)
{
System.err.println("File path \"" + args[0] + "\" not found.");
System.exit(0);
}
ArrayList<String> lines=new ArrayList<String>();
while(scan.hasNextLine())
lines.add(scan.nextLine());
if(!(args.length == 0))
{
if(args[1] == lastname)
{
sortByLastName();
}
else if(args[1] == firstname)
{
sortByLastName();
}
else if(args[1] == age)
{
sortByAge();
}
else if(args[1] == roomnumber)
{
sortByRoomNumber();
}
}
}
static String sortByLastName()
{
Collections.sort(lines);
for(String x : lines)
System.out.println(x);
}
static String sortByFirstName()
{
}
static int sortByAge()
{
}
static int sortByRoomNumber()
{
}
}
答案 0 :(得分:1)
创建一个名为Patient
的模型类,它具有firstName,lastName等。
class Patient{
String firstName;
String lastName;
// Constructor, getter, setter
}
我猜,文本文件行以逗号分隔。因此,将行拆分为数组并填充List
List<Parent> patients= new ArrayList<>();
while(sc.hanNextLine()){
String[] values= sc.nextLine().split(",");
patients.add(new Patient(...))
}
现在,从命令行中读取客户首选项并对患者列表进行排序。
String sortType= sc.next()
switch(sortType)){//Use java 7 or greater for string switch
case "firsname":
//Now sort the list by firstname using Comparator sort method.
break;
case "lastname":
....
}