java - 忽略字符串中的重复项并打印一次字符串

标签 java string if-statement while-loop duplicates

对于我的作业来说,我几乎必须列出在给定日期在给定建筑物中类的所有类(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/

相关文章:

c# - 使用 C# 在 WinForm 中托管的 ListBox 中添加和删除文本

php - 如何从其他关联数组创建关联数组?

java - JSONObject.put(String) 为每个 '\' 添加 '/'

php - Laravel 从私有(private)方法重定向错误

java - HttpServletRequest.setAttribute() 转换 ASCII 字符

java - Spring-data-mongo 无法使用构造函数实例化 java.util.List

java - 如何组合下面的 if 循环?

javascript - 使用多个 OR || 简化 IF 语句相同变量的条件

java - 如何在java中划分两个长变量

java - 将库从 org.json 更改为 Jackson 以解析 JSON