java实现找出两个文件中相同的单词(两种方法)
java实现找出两个文件中相同的单词,具体代码如下所示:
packagecom.zy.DesignPrinciples.singleresponsibility;
importjavax.print.DocFlavor;
importjava.io.BufferedReader;
importjava.io.FileReader;
importjava.util.HashSet;
/**
*@ClassName:ReaderComplete
*@Author:Tiger
*@Title:找出两个文件中相同的单词
*@Datetime:2020/8/1919:49
*@Package:com.zy.DesignPrinciples.singleresponsibility
*/
publicclassReaderComplete{
publicstaticvoidmain(String[]args)throwsException{
Strings=loadFile("F:\\.temp\\1.txt");
Strings1=loadFile("F:\\.temp\\2.txt");
String[]words1=parseWordsFromString(s);
String[]words2=parseWordsFromString(s1);
String[]words=findTheSameWords(words1,words2);
for(Stringword:words){
System.out.println(word);
}
}
//加载文件内容,并将文本内容解析返回出去
publicstaticStringloadFile(Stringpath)throwsException{
FileReaderreader=newFileReader(path);
//bufferedReader一次只能读一行内容
BufferedReaderbr=newBufferedReader(reader);
Stringline=null;
StringBuildersb=newStringBuilder();
while((line=br.readLine())!=null){
sb.append(line);
sb.append("\n");
}
br.close();
returnsb.toString();
}
//将解析的内容变成数组
publicstaticString[]parseWordsFromString(Stringstring){
String[]strings=string.split("[^a-zA-Z]+");
returnstrings;
}
//查询两文件的相同代码
publicstaticString[]findTheSameWords(String[]s1,String[]s2){
HashSetset=newHashSet<>();
for(inti=0;i
第二种比较单词的方法:将string【】数组转换成集合,通过集合的retainAll()方法
两个集合取交集
publicstaticString[]findTheSameWords2(String[]s1,String[]s2){
//将字符串数组转换成集合
Listlist=newArrayList(Arrays.asList(s1));
Listlist2=newArrayList(Arrays.asList(s2));
//计算交集并且把计算结果存入到list中而且list2并不会改变
list.retainAll(list2);
HashSetset=newHashSet<>(list);
returnset.toArray(newString[]{});
}
PS:java实现获取两个文本共同的词
代码块
publicclassComWords{
/**
*@ClassName:ComWords
*@Description:TODO(获取两个文档的共同词)
*@author:Amy_Robot
*@date:2017年3月24日下午5:16:48
*/
publicstaticStringgetFileContent(Stringpath)
{
StringBuffersb=newStringBuffer();
InputStreamReaderisr=null;
BufferedReaderbufferedReader=null;
StringfileContent="";{
try{
Stringencoding="utf-8";
Filefile=newFile(path);
if(file.isFile()&&file.exists()){//判断文件是否存在
isr=newInputStreamReader(newFileInputStream(file),encoding);//考虑到编码格式
bufferedReader=newBufferedReader(isr);
StringlineTxt=null;
while((lineTxt=bufferedReader.readLine())!=null){
//System.out.println(lineTxt);//输出文档内容
sb.append(lineTxt);
}
isr.close();
}else{
System.out.println("找不到指定的文件");
}
}catch(Exceptione){
System.out.println("读取文件内容出错");
e.printStackTrace();
}finally{
try{
if(isr!=null){
isr.close();
isr=null;
}
if(bufferedReader!=null){
bufferedReader.close();
bufferedReader=null;
}
}catch(Exceptione){
e.printStackTrace();
}
}
returnsb.toString();}
}
publicstaticvoidgetComWords(Stringsourcefile1,Stringsourcefile2,Stringtargetfile)throwsIOException{
BufferedWriterF2Writer=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(newFile(targetfile))));
Listlist1=newArrayList();
Listlist2=newArrayList();
Listlist3=newArrayList();
Stringa[]=getFileContent(sourcefile1).split("\\s");
for(intj=0;j
总结
到此这篇关于java实现找出两个文件中相同的单词(两种方法)的文章就介绍到这了,更多相关java找出两个文件相同单词内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。