Java HashSet对txt文本内容去重(统计小说用过的字或字数)

基本思路:

1、字节流读需要去重的txt文本。(展示demo为当前workspace下名为utf-8.txt的文本)

2、对读取到的单个字节判断

(1)如果为字母或特殊字符。操作(2)

(2)添加到HashSet中,如果HashSet.add()返回true代表该字符添加到HashSet失败,即字符未出现过,故对其做写操作。(展示demo写到的是当前workspace下的u.txt)

(3)如果为中文字符,根据txt文本编码取对应字节数(如:utf-8编码三个字节,gbk编码两个字节,展示demo为utf-8编码的txt文本),操作(2)

尤其注意文本编码格式

3、关闭流

如需统计字数即两个HashSet的长度相加即可,本文未写出。

展示demo

FileInputStream fileInputStream = new FileInputStream("utf8.txt");

FileOutputStream fileOutputStream=new FileOutputStream("u.txt");

int len = 0;

HashSet c = new HashSet<>();

HashSet z = new HashSet<>();

while ((len = fileInputStream.read()) != -1) {

if (1 <= len && len <= 127) {//ascii码值判断是否为字母或特殊字符

if (c.add(len)){

//System.out.printf(String.valueOf((char) len));

fileOutputStream.write(len);

}

} else {

int first = len;

int second = fileInputStream.read();

int third = fileInputStream.read();

//一个字符对应三个字节

byte[] bytes = {(byte) first, (byte) second, (byte) third};

if ( z.add(bytes)){

//System.out.print(new String(bytes));

fileOutputStream.write(bytes);

}

}

}

仅提供思路,写法不一定是最好的。

有问题请私聊我。

java如何统计txt的字数_Java HashSet对txt文本内容去重(统计小说用过的字或字数)...相关推荐

  1. java 计算i 出现的次数_JAVA算法:按照给定的段落统计单词出现次数(JAVA代码)...

    https://blog.csdn.net/seagal890/article/details/92067644 JAVA算法:按照给定的段落统计单词出现次数(JAVA代码) 写一个 JAVA程序以统 ...

  2. java计算文件里的总分_java程序读取txt文件并计算总分 求帮忙

    展开全部 你这个不难,就是字符串处理, 你的文件修改下:每行两两元素636f70793231313335323631343130323136353331333332636336之间的空格用一个,如果超 ...

  3. java的add方法的使用_Java HashSet add()方法与示例

    HashSet类add()方法add()方法在java.util包中可用. 当尚不存在给定元素时,使用add()方法将其插入此HashSet中,否则它将忽略它并返回false. add()方法是一种非 ...

  4. java txt html格式_java中xml(txt/html等格式)解析问题,请教java高手,请勿粘贴其他网页上的内容(能查的都看了)。...

    目的:通过对网页内容解析,获得需要的内容,如网页的标题Title,主要内容,描述信息:而里面的广告.超链接.无关紧要的信息统统不要,从而达到对用户上网行为的分析的目的.下面是我... 目的:通过对网页 ...

  5. java在文件尾部写文件_Java在文件尾部追加内容

    import java.io.FileWriter; import java.io.IOException; import java.io.RandomAccessFile; /** * 将内容追加到 ...

  6. java中集合和数据库中_java中list集合的内容,如何使用像数据库中group by形式那样排序...

    标签:java中list集合的内容,如何使用像数据库中group by形式那样排序,比如: 有一个 List 他中包含了一些如下的内容 JavaBean: name    money (名称)  (金 ...

  7. java比较两个字符串变量_Java 比较两个字符串内容是否相等

    最近在做松哥的微人事项目时,编写SpringBoot后台接口时遇到一个小问题,就是当比较两个String对象内容是否相等时,我第一次使用==没有得到预想到的结果,改成String的equals()方法 ...

  8. java出现次数最多的字母_java计算给定字符串中出现次数最多的字母和该字

    importJava.util.Collections; importjava.util.Map; importjava.util.TreeMap; publicclassTestStringSpli ...

  9. JAVA下GUI设置透明背景图片窗口(不覆盖文本内容)

    之前学过Java的GUI,写过简单的例子.昨天朋友问怎么能为窗口设置背景图片,且让文字在背景上边显示,挺简单的要求折腾了好一会儿才实现-mark一下. 一.最终效果图: 二.源码 public cla ...

  10. java 创建本地文件、写入文本内容、调用IE浏览器打开

    Windows 创建本地文件.写入文本内容.调用IE浏览器打开 try {//先创建目录文件夹,如果直接创建文件会提示找不到对应的路径File fileDir = new File("C:/ ...

最新文章

  1. php代码中使用换行及(\n或\r\n和br)的应用
  2. oracle 递归应用(挺复杂的)
  3. CVPR 2021|可操控的GAN——Hijack-GAN
  4. 数据特征分析-统计分析
  5. android 模糊读取文件名_Android 从路径中获取文件名 | 学步园
  6. anaconda和python区别_初学 Python 者自学 Anaconda 的正确姿势是什么?
  7. 输出26个英文字母c语言,菜鸟求助,写一个随机输出26个英文字母的程序
  8. 执行环境及作用域分析
  9. 系统学习深度学习(三十一)--Nature DQN(NIPS 2015)
  10. android 东软pda扫描适配_东软数字化医院解决方案
  11. java date the type is ambiguous,The type File is ambiguous,该如何解决
  12. 如何将JPG免费转化成PDF
  13. mysql 月初 月末_月初 月末 sql 语句(日期所在月的第一天,最后一天)
  14. Cadence Allegro如何加密PCB文件?
  15. kali中使用Docker搭建vulhub靶场和vulapps靶场(新手向)
  16. ZCMU-1720-死亡如风,我要装逼
  17. Design pattern : Singleton
  18. 中国超级计算机名单100强,中国高性能计算机TOP100榜单揭晓
  19. 合肥师范学院计算机学院行知学堂,计算机学院始信社区“行知学堂”圆满结课...
  20. windows安全中心发现威胁怎么处理?

热门文章

  1. 软件设计师考试真题链接
  2. 2021年下半年软件设计师考试下午题
  3. 光谱共焦传感器应用于哪些领域
  4. 硬件基础之模电数电电路(一)
  5. python:实现培根密码算法(附完整源码)
  6. PR转场插件 MAC版 FilmImpact Transition Pack v1-v2
  7. oracle的优化器有哪些,Oracle优化器有哪些优化方式?
  8. seaweedfs使用说明
  9. iOS 性能优化那些繁杂琐碎的事儿
  10. 查看oracle磁盘组空间,shell脚本检查oracle中的ASM磁盘组空间并发送邮件