1. 程式人生 > 程式設計 >java實現找出兩個檔案中相同的單詞(兩種方法)

java實現找出兩個檔案中相同的單詞(兩種方法)

java實現找出兩個檔案中相同的單詞,具體程式碼如下所示:

package com.zy.DesignPrinciples.singleresponsibility;

import javax.print.DocFlavor;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashSet;

/**
 * @ClassName: ReaderComplete
 * @Author: Tiger
 * @Title: 找出兩個檔案中相同的單詞
 * @Datetime: 2020/8/19  19:49
 * @Package: com.zy.DesignPrinciples.singleresponsibility
 */
public class ReaderComplete {
  public static void main(String[] args) throws Exception {
    String s = loadFile("F:\\.temp\\1.txt");
    String s1 = loadFile("F:\\.temp\\2.txt");
    String[] words1 = parseWordsFromString(s);
    String[] words2 = parseWordsFromString(s1);
    String[] words = findTheSameWords(words1,words2);
    for (String word : words) {
      System.out.println(word);
    }
  }

  //載入檔案內容,並將文字內容解析返回出去
  public static String loadFile(String path) throws Exception {
    FileReader reader = new FileReader(path);
    //bufferedReader 一次只能讀一行內容
    BufferedReader br = new BufferedReader(reader);
    String line = null;
    StringBuilder sb = new StringBuilder();
    while ((line = br.readLine()) != null) {

      sb.append(line);
      sb.append("\n");
    }
    br.close();
    return sb.toString();
  }
  //將解析的內容變成陣列
  public static String[] parseWordsFromString(String string) {
    String[] strings = string.split("[^a-zA-Z]+");
    return strings;

  }
  //查詢兩檔案的相同程式碼
  public static String[] findTheSameWords(String[] s1,String[] s2){
    HashSet<String> set = new HashSet<>();
    for (int i = 0; i < s1.length; i++) {
      for (int j = 0; j < s2.length; j++) {
        if (s1[i].equals(s2[j])){
          set.add(s1[i]);
        }
      }
    }
    return set.toArray(new String[] {});
  }
}

第二種比較單詞的方法:將string【】陣列轉換成集合,通過集合的retainAll()方法
兩個集合取交集

public static String[] findTheSameWords2(String[] s1,String[] s2){

    //將字串陣列轉換成集合
    List<String> list = new ArrayList(Arrays.asList(s1));
    List<String> list2 = new ArrayList(Arrays.asList(s2));
    //計算交集 並且把計算結果存入到list中而且list2並不會改變
    list.retainAll(list2);
    HashSet<String> set = new HashSet<>(list);
    return set.toArray(new String[] {});
  }

總結

到此這篇關於java實現找出兩個檔案中相同的單詞(兩種方法)的文章就介紹到這了,更多相關java找出兩個檔案相同單詞內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!