java如何统计txt的字数_Java HashSet对txt文本内容去重(统计小说用过的字或字数)...
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文本内容去重(统计小说用过的字或字数)...相关推荐
- java 计算i 出现的次数_JAVA算法:按照给定的段落统计单词出现次数(JAVA代码)...
https://blog.csdn.net/seagal890/article/details/92067644 JAVA算法:按照给定的段落统计单词出现次数(JAVA代码) 写一个 JAVA程序以统 ...
- java计算文件里的总分_java程序读取txt文件并计算总分 求帮忙
展开全部 你这个不难,就是字符串处理, 你的文件修改下:每行两两元素636f70793231313335323631343130323136353331333332636336之间的空格用一个,如果超 ...
- java的add方法的使用_Java HashSet add()方法与示例
HashSet类add()方法add()方法在java.util包中可用. 当尚不存在给定元素时,使用add()方法将其插入此HashSet中,否则它将忽略它并返回false. add()方法是一种非 ...
- java txt html格式_java中xml(txt/html等格式)解析问题,请教java高手,请勿粘贴其他网页上的内容(能查的都看了)。...
目的:通过对网页内容解析,获得需要的内容,如网页的标题Title,主要内容,描述信息:而里面的广告.超链接.无关紧要的信息统统不要,从而达到对用户上网行为的分析的目的.下面是我... 目的:通过对网页 ...
- java在文件尾部写文件_Java在文件尾部追加内容
import java.io.FileWriter; import java.io.IOException; import java.io.RandomAccessFile; /** * 将内容追加到 ...
- java中集合和数据库中_java中list集合的内容,如何使用像数据库中group by形式那样排序...
标签:java中list集合的内容,如何使用像数据库中group by形式那样排序,比如: 有一个 List 他中包含了一些如下的内容 JavaBean: name money (名称) (金 ...
- java比较两个字符串变量_Java 比较两个字符串内容是否相等
最近在做松哥的微人事项目时,编写SpringBoot后台接口时遇到一个小问题,就是当比较两个String对象内容是否相等时,我第一次使用==没有得到预想到的结果,改成String的equals()方法 ...
- java出现次数最多的字母_java计算给定字符串中出现次数最多的字母和该字
importJava.util.Collections; importjava.util.Map; importjava.util.TreeMap; publicclassTestStringSpli ...
- JAVA下GUI设置透明背景图片窗口(不覆盖文本内容)
之前学过Java的GUI,写过简单的例子.昨天朋友问怎么能为窗口设置背景图片,且让文字在背景上边显示,挺简单的要求折腾了好一会儿才实现-mark一下. 一.最终效果图: 二.源码 public cla ...
- java 创建本地文件、写入文本内容、调用IE浏览器打开
Windows 创建本地文件.写入文本内容.调用IE浏览器打开 try {//先创建目录文件夹,如果直接创建文件会提示找不到对应的路径File fileDir = new File("C:/ ...
最新文章
- php代码中使用换行及(\n或\r\n和br)的应用
- oracle 递归应用(挺复杂的)
- CVPR 2021|可操控的GAN——Hijack-GAN
- 数据特征分析-统计分析
- android 模糊读取文件名_Android 从路径中获取文件名 | 学步园
- anaconda和python区别_初学 Python 者自学 Anaconda 的正确姿势是什么?
- 输出26个英文字母c语言,菜鸟求助,写一个随机输出26个英文字母的程序
- 执行环境及作用域分析
- 系统学习深度学习(三十一)--Nature DQN(NIPS 2015)
- android 东软pda扫描适配_东软数字化医院解决方案
- java date the type is ambiguous,The type File is ambiguous,该如何解决
- 如何将JPG免费转化成PDF
- mysql 月初 月末_月初 月末 sql 语句(日期所在月的第一天,最后一天)
- Cadence Allegro如何加密PCB文件?
- kali中使用Docker搭建vulhub靶场和vulapps靶场(新手向)
- ZCMU-1720-死亡如风,我要装逼
- Design pattern : Singleton
- 中国超级计算机名单100强,中国高性能计算机TOP100榜单揭晓
- 合肥师范学院计算机学院行知学堂,计算机学院始信社区“行知学堂”圆满结课...
- windows安全中心发现威胁怎么处理?