java实现找出两个文件中相同的单词(两种方法)

网友投稿 259 2023-03-24

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 lYmPZGDGine = 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 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 list = new ArrayList(Arrays.asList(s1));

List list2 = new ArrayList(Arrays.asList(s2));

//计算交集 并且把计算结果存入到list中而且list2并不会改变

list.retainAll(list2);

HashSet set = new HashSet<>(list);

return set.toArray(new String[] {});

}

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:快递单号查询 (快递单号查询单号)(4分钟之前已更新)
下一篇:今日国内油价 (今日国内油价最新价格)(3分钟之前已更新)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~