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<Integer> c = new HashSet<>();
HashSet<String> 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 HashSet对txt文本内容去重(统计小说用过的字或字数)的更多相关文章

  1. 使用java读取解析txt文本数据,管理简单的数据

    在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的一下本人写出我自己做的一个读取文本文件的例子,文件中存储的是我的个人网站 www.yzcopen.com 导航栏目因为懒得使 ...

  2. PHP将富文本编辑后的内容,去除样式图片等只保留txt文本内容

    1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...

  3. PHP将富文本内容去除各类样式图片等只保留txt文本内容(作用于SEO的description)

    1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...

  4. 如何快速合并多个TXT文本内容

    工作中有时候需要合并很多文本内容,例如一些推送清单之类,一个一个打开去复制粘贴的话,少量还行,如果txt文本数据量大(10+M以上)且文件数量多(成百上千),这种方式就显得很低效了.具体要求如下:   ...

  5. python读取、写入txt文本内容

    转载:https://blog.csdn.net/qq_37828488/article/details/100024924 python常用的读取文件函数有三种read().readline().r ...

  6. java通过URL获取文本内容

    原文地址https://www.cnblogs.com/myadmin/p/7634262.html public static String readFileByUrl(String urlStr) ...

  7. C++ 读取txt文本内容,并将结果保存到新文本

    循序渐进学习读文件 // readFile.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> # ...

  8. C# 读取txt文本内容写入到excel

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. 解决windows7搜索不了txt文本内容的问题

    windows7默认的搜索框是只搜索文件名,若是要文件内容的话,需要这样设置: 打开"我的电脑",左上角"组织"→"文件夹和搜索选项"→&q ...

随机推荐

  1. 如何编写高质量的 JS 函数(3) --函数式编程[理论篇]

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/EWSqZuujHIRyx8Eb2SSidQ作者:杨昆 [编写高质量函数系列]中, <如何 ...

  2. vmware上安装centos7虚拟机

    1.1 Linux 的安装 安 装 采 用 在 虚 拟 机 中 安 装 , 以 方 便 不 同 班 级 授 课 时 , 需 要 重 复 安装的情况. 1.1.1 配置虚拟机 1. 在 VMware W ...

  3. Java 学习笔记之 Return停止线程

    Return停止线程: 使用interrupt()和return结合也可以实现停止线程的效果.不过还是建议使用“抛异常“的方法,因为在catch块中可以将异常向上抛,使线程停止的事件得以传播. pub ...

  4. ELK 学习笔记之 Logstash之codec配置

    Logstash之codec: Logstash处理流程: input=>decode=>filter=>encode=>output 分类: Plain编码: input{ ...

  5. ELK 学习笔记之 elasticsearch环境搭建

    ELK概述: ElasticSearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等 Logstash是一 ...

  6. Spring框架学习笔记(4)——SSM整合以及创建Maven自定义模版

    Spring+Spring MVC+MyBatis+Maven SSM整合的核心还是Spring+MyBatis的整合,回顾一下MyBatis操作数据库流程,我们是使用一个SQLSessionFact ...

  7. python爬虫入门10分钟爬取一个网站

    一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...

  8. 理解LSTM网络--Understanding LSTM Networks(翻译一篇colah's blog)

    colah的一篇讲解LSTM比较好的文章,翻译过来一起学习,原文地址:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ ,Posted ...

  9. Python读取excel 数据

    1.安装xlrd 2.官网 通过官网来查看如何使用python读取Excel,python excel官网: http://www.python-excel.org/ 实例: (1)Excel内容 把 ...

  10. 如何在github上下载单个文件夹?

    前言:在查看源码的过程中,相信很多人都像我一样,遇到某个公司或个人的repository是几个项目的集合整理,而我只要其中某个项目文件夹.那不依赖其他软件,怎么通过git去下载呢??? 下面直接给个例 ...