最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實現(xiàn)找出兩個文件中相同的單詞(兩種方法)

 更新時間:2020年08月21日 10:31:42   作者:·小腦斧·  
這篇文章主要介紹了java實現(xiàn)找出兩個文件中相同的單詞(兩種方法),需要的朋友可以參考下

java實現(xiàn)找出兩個文件中相同的單詞,具體代碼如下所示:

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);
  }
 }

 //加載文件內(nèi)容,并將文本內(nèi)容解析返回出去
 public static String loadFile(String path) throws Exception {
  FileReader reader = new FileReader(path);
  //bufferedReader 一次只能讀一行內(nèi)容
  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();
 }
 //將解析的內(nèi)容變成數(shù)組
 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【】數(shù)組轉(zhuǎn)換成集合,通過集合的retainAll()方法
兩個集合取交集

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

  //將字符串數(shù)組轉(zhuǎn)換成集合
  List<String> list = new ArrayList(Arrays.asList(s1));
  List<String> list2 = new ArrayList(Arrays.asList(s2));
  //計算交集 并且把計算結(jié)果存入到list中而且list2并不會改變
  list.retainAll(list2);
  HashSet<String> set = new HashSet<>(list);
  return set.toArray(new String[] {});
 }

PS:java實現(xiàn)獲取兩個文本共同的詞

代碼塊

public class ComWords {
  /**
   * @ClassName: ComWords
   * @Description: TODO(獲取兩個文檔的共同詞)
   * @author: Amy_Robot
   * @date: 2017年3月24日 下午5:16:48
   */

  public static String getFileContent(String path)
  {
  StringBuffer sb = new StringBuffer();
  InputStreamReader isr = null;
  BufferedReader bufferedReader = null;
  String fileContent="";{
  try {
    String encoding = "utf-8";
    File file = new File(path);
    if (file.isFile() && file.exists()) { // 判斷文件是否存在
      isr = new InputStreamReader(new FileInputStream(file), encoding);// 考慮到編碼格式
      bufferedReader = new BufferedReader(isr);
      String lineTxt = null;
      while ((lineTxt = bufferedReader.readLine()) != null) {
        //System.out.println(lineTxt);//輸出文檔內(nèi)容
        sb.append(lineTxt);
      }

      isr.close();
    } else {
      System.out.println("找不到指定的文件");
    }
  } catch (Exception e) {
    System.out.println("讀取文件內(nèi)容出錯");
    e.printStackTrace();
  } finally {
    try {
      if (isr != null) {
        isr.close();
        isr = null;
      }
      if (bufferedReader != null) {
        bufferedReader.close();
        bufferedReader = null;
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  return sb.toString();}
  }

  public static void getComWords(String sourcefile1,String sourcefile2,String targetfile) throws IOException{

    BufferedWriter F2Writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(targetfile))));
    List<String> list1= new ArrayList<String>();
    List<String> list2= new ArrayList<String>();
    List<String> list3= new ArrayList<String>();
    String a[] =getFileContent(sourcefile1).split("\\s");
    for (int j = 0; j < a.length; j++) {
      list1.add(a[j]);
    }
    String b[] = getFileContent(sourcefile2).split("\\s");
    for (int j = 0; j < b.length; j++) {
      list2.add(b[j]);
    }

    for (String str2 : list2) {

      if(list1.contains(str2)){  
        list3.add(str2);
        F2Writer.write(str2+"\r\n");

      }  

      }
    for (String str : list3) {
      System.out.println(str);

    }
     F2Writer.close();
    }  


  public static void main(String[] args) throws IOException {
    String target="e:\\1.txt";
    String path1="D:\\qirui_naf.txt";
    String path2="D:\\jianghuai_naf.txt";
    getComWords(path1, path2, target);

  }
}

總結(jié)

到此這篇關(guān)于java實現(xiàn)找出兩個文件中相同的單詞(兩種方法)的文章就介紹到這了,更多相關(guān)java找出兩個文件相同單詞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • CentOS 7下JDK8的詳細安裝步驟

    CentOS 7下JDK8的詳細安裝步驟

    這篇文章主要為大家介紹了CentOS 7下JDK8的詳細安裝步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Mybatis 實現(xiàn)打印sql語句的代碼

    Mybatis 實現(xiàn)打印sql語句的代碼

    這篇文章主要介紹了Mybatis 實現(xiàn)打印sql語句的代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 通俗講解JVM的類加載機制

    通俗講解JVM的類加載機制

    這篇文章主要介紹了JVM的類加載機制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-09-09
  • SpringFramework中的數(shù)據(jù)校驗方式

    SpringFramework中的數(shù)據(jù)校驗方式

    這篇文章主要介紹了SpringFramework中的數(shù)據(jù)校驗方式,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Mybatis中的高級映射一對一、一對多、多對多

    Mybatis中的高級映射一對一、一對多、多對多

    這篇文章主要介紹了Mybatis中的高級映射一對一、一對多、多對多的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • Can''t use Subversion command line client:svn 報錯處理

    Can''t use Subversion command line client:svn 報錯處理

    這篇文章主要介紹了Can't use Subversion command line client:svn 報錯處理的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Java 和 JavaScript 真正通用的Base64編碼詳解

    Java 和 JavaScript 真正通用的Base64編碼詳解

    這篇文章主要介紹了Java 和 JavaScript 真正通用的Base64編碼詳解的相關(guān)資料,附有Java和Javascript 的Base64編碼,需要的朋友可以參考下
    2016-11-11
  • SpringBoot配置及使用Schedule過程解析

    SpringBoot配置及使用Schedule過程解析

    這篇文章主要介紹了SpringBoot配置及使用Schedule過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • MyBatis方法重載的陷阱及解決方案

    MyBatis方法重載的陷阱及解決方案

    在使用 MyBatis 進行開發(fā)時,尤其是使用注解模式(如 @Select、@Insert 等)時,開發(fā)者常常會遇到這樣一個問題:為什么我的方法重載不能正常工作?這篇文章將深入探討 MyBatis 的這個特性及如何規(guī)避相關(guān)的坑,需要的朋友可以參考下
    2024-09-09
  • JavaWeb亂碼問題的終極解決方案(推薦)

    JavaWeb亂碼問題的終極解決方案(推薦)

    這篇文章主要給大家介紹了關(guān)于JavaWeb亂碼問題的終極解決方案,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用JavaWeb具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論

科技| 扎兰屯市| 邢台县| 防城港市| 玉林市| 枝江市| 延津县| 台前县| 大洼县| 元谋县| 镇远县| 蒙山县| 准格尔旗| 通化市| 道真| 连州市| 锡林郭勒盟| 库车县| 岑巩县| 通化县| 始兴县| 浑源县| 双流县| 朔州市| 绥宁县| 延安市| 通山县| 定边县| 四子王旗| 炎陵县| 浪卡子县| 松滋市| 蒙自县| 林口县| 郧西县| 巫山县| 且末县| 伊春市| 通许县| 安化县| 鹤峰县|