按文本数据输入,按要求格式打印一周课程表,问题如图1,结果如图2
问题图1
结果图2
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
public class 课程排序V2 {
public static void main(String[] args) throws IOException {
BufferedReader br = null;
InputStream in = 课程排序V2.class.getResourceAsStream("/课程输入.txt");
InputStreamReader is = new InputStreamReader(in);
br = new BufferedReader(is);// Feed the contents of the file read to br
String str = null;// String not null
//二维数组,1维星期5天,2维一天8节课
Recod[][] list_xq = new Recod[5][8];
//星期天数组
String[] xq= {"星期一","星期二","星期三","星期四","星期五"};
List<String> xq_list = Arrays.asList(xq);
//上课时间数组
Integer[] sksj={8,9,10,11,13,14,15,16};
List<Integer> sksj_list = Arrays.asList(sksj);
while ((str = br.readLine()) != null) {// Read characters are stored in
// STR until they are read
String[] split = str.split(" ");
Recod recod = new Recod(split[1], Integer.parseInt(split[2]
.split(":")[0]), split[4]);
//取出要存储星期几的位置
int xq_index = xq_list.indexOf(recod.getWeekName());
//取出要存储上课时间的位置
int sksj_index = sksj_list.indexOf(recod.getStartDate());
list_xq[xq_index][sksj_index] = recod;
}
System.out.println("\t\t上午\t\t\t\t下午");
for (int i = 0; i < xq.length; i++) {
String weekName = xq[i];
System.out.print(""+weekName);
for (Recod recod2 : list_xq[i]) {
System.out.print("\t"+(recod2==null?"":recod2.getClassName()));
}
System.out.println();
}
}
private static class Recod implements Comparable<Recod> {
private String weekName;
private Integer startDate;
private String className;
public Recod(String weekName, Integer startDate, String className) {
super();
this.weekName = weekName;
this.startDate = startDate;
this.className = className;
}
public String getWeekName() {
return weekName;
}
public void setWeekName(String weekName) {
this.weekName = weekName;
}
public int getStartDate() {
return startDate;
}
public void setStartDate(Integer startDate) {
this.startDate = startDate;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
@Override
public int compareTo(Recod o) {
return o.startDate-this.startDate;
}
@Override
public String toString() {
return "[weekName=" + weekName + ", startDate=" + startDate
+ ", className=" + className + "]";
}
}
}
以下内容是文本数据,可以作为输入参数--命名:课程输入.txt
张三 星期一 8:00 8:45 语文
张三 星期二 10:00 10:45 生物
张三 星期二 11:00 11:45 化学
张三 星期五 11:00 11:45 化学
张三 星期一 9:00 9:45 数学
张三 星期一 10:00 10:45 英语
张三 星期一 11:00 11:45 化学
张三 星期三 13:30 14:15 语文
张三 星期四 10:00 10:45 物理
张三 星期四 11:00 11:45 化学
张三 星期四 13:30 14:15 英语
张三 星期一 13:30 14:15 物理
张三 星期一 14:30 15:15 生物
张三 星期一 15:30 16:15 体育
张三 星期一 16:30 17:15 美术
张三 星期三 8:00 8:45 物理
张三 星期三 9:00 9:45 生物
张三 星期三 10:00 10:45 英语
张三 星期三 11:00 11:45 体育
张三 星期四 14:30 15:15 生物
张三 星期四 15:30 16:15 体育
张三 星期三 14:30 15:15 数学
张三 星期三 15:30 16:15 化学
张三 星期二 9:00 9:45 体育
张三 星期五 13:30 14:15 英语
张三 星期五 14:30 15:15 生物
张三 星期五 15:30 16:15 美术
张三 星期五 16:30 17:15 体育
张三 星期二 13:30 14:15 物理
张三 星期二 14:30 15:15 英语
张三 星期二 16:30 17:15 语文
张三 星期四 8:00 8:45 生物
张三 星期四 9:00 9:45 数学
张三 星期四 16:30 17:15 数学
张三 星期五 8:00 8:45 物理
张三 星期五 9:00 9:45 数学
张三 星期五 10:00 10:45 语文