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

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

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

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

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: 找出兩個(gè)文件中相同的單詞
 * @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()方法
兩個(gè)集合取交集

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

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

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

代碼塊

public class ComWords {
  /**
   * @ClassName: ComWords
   * @Description: TODO(獲取兩個(gè)文檔的共同詞)
   * @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)容出錯(cuò)");
    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實(shí)現(xiàn)找出兩個(gè)文件中相同的單詞(兩種方法)的文章就介紹到這了,更多相關(guān)java找出兩個(gè)文件相同單詞內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • CentOS 7下JDK8的詳細(xì)安裝步驟

    CentOS 7下JDK8的詳細(xì)安裝步驟

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

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

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

    通俗講解JVM的類加載機(jī)制

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

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

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

    Mybatis中的高級(jí)映射一對(duì)一、一對(duì)多、多對(duì)多

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

    Can''t use Subversion command line client:svn 報(bào)錯(cuò)處理

    這篇文章主要介紹了Can't use Subversion command line client:svn 報(bào)錯(cuò)處理的相關(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過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • MyBatis方法重載的陷阱及解決方案

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

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

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

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

最新評(píng)論

饶平县| 无极县| 镇宁| 白河县| 鲁山县| 雅江县| 寿阳县| 洞头县| 济源市| 白水县| 财经| 太湖县| 揭阳市| 东台市| 平顶山市| 芜湖市| 呼伦贝尔市| 沙田区| 沁源县| 方山县| 司法| 黔东| 拉萨市| 大邑县| 乌拉特后旗| 秦皇岛市| 镇赉县| 巴塘县| 青田县| 禹城市| 如皋市| 云阳县| 山东省| 贡嘎县| 达拉特旗| 车致| 施秉县| 东乡县| 兴海县| 英山县| 万荣县|