找出两个文件中相同的单词(java实现)
时间:2022-07-23
本文章向大家介绍找出两个文件中相同的单词(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[] {});
}
- OSX SIP机制的“那些事”
- [WCF REST] 帮助页面与自动消息格式(JSON/XML)选择
- WCF服务端运行时架构体系详解[下篇]
- python和C语言混编的几种方式
- 通过“四大行为”对WCF的扩展[实例篇]
- 古中国数学家的计算力真是惊人
- 基于Apache Spark机器学习的客户流失预测
- 数据库连接字符串的处理方法!加密解密连接字符串。
- ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI。
- 通过自定义ServiceHost实现对WCF的扩展[实例篇]
- 通过自定义ServiceHost实现对WCF的扩展[原理篇]
- python使用rsa库做公钥解密(网上别处找不到)
- 通过“四大行为”对WCF的扩展[原理篇]
- WCF客户端运行时架构体系详解[下篇]
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- php分享朋友圈的实现代码
- Laravel框架Request、Response及Session操作示例
- 利用scikitlearn画ROC曲线实例
- 小程序微信退款功能实现方法详解【基于thinkPHP】
- PHP回调函数简单用法示例
- PHP explode()函数用法讲解
- 详解提高使用Java反射的效率方法
- PHP fopen函数用法实例讲解
- python正则表达式的懒惰匹配和贪婪匹配说明
- PyQt5-QDateEdit的简单使用操作
- thinkphp5实现无限级分类
- Python numpy矩阵处理运算工具用法汇总
- Django后端分离 使用element-ui文件上传方式
- PHP fprintf()函数用法讲解
- django template实现定义临时变量,自定义赋值、自增实例