对于我的作业来说,我几乎必须列出在给定日期在给定建筑物中类的所有类(class)(仅类(class)代码),以便类(class)的任何部分都在给定时间之间。每门涉及的类(class)只能列出一次,即使它有多个类(class)。除了列出一次类(class)之外,我已经做了所有事情,即使它有几个类(class)。如何忽略文件中的重复字符串?
public void potentialDisruptions(String building, String targetDay, int targetStart, int targetEnd){
UI.printf("\nClasses in %s on %s between %d and %d%n",
building, targetDay, targetStart, targetEnd);
UI.println("=================================");
boolean containsCourse = false;
try {
Scanner scan = new Scanner(new File("classdata.txt"));
while(scan.hasNext()){
String course = scan.next();
String type= scan.next();
String day = scan.next();
int startTime = scan.nextInt();
int endTime = scan.nextInt();
String room = scan.next();
if(room.contains(building)){
if(day.contains(targetDay)){
if(endTime >= targetStart){
if( startTime<= targetEnd){
UI.printf("%s%n", course);
containsCourse = true;
}
}
}
}
}
if(!containsCourse){
UI.println("error");
}
}
catch(IOException e){
UI.println("File reading failed");
}
UI.println("=========================");
}
最佳答案
您可以将所有字符串标记放入 Set 中并检查该 token 是否包含在 Set 中在您进一步处理之前,如下所示:-
// Declration
....
Set courseSet = new HashSet();
...
// Check befor you process further
if(!courseSet.contains(course))
{
...
// Your Code...
...
courseSet.add(course)
}
关于java - 忽略字符串中的重复项并打印一次字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29918290/