[Java]提取一个文件中出现过的所有汉字
汉化需要这样一个工具,奈何网上没有;自己写咯~
编辑器:Visual Studio Code 1.77.1
JDK版本:Openjdk 19.0.2
基本思路:
一些交互提示,获取源文件和输出文件名
初始化一个StringBuilder: selector
读文件内容到StringBuffer
转成char然后使用hashset检查重复,将首次出现的字符写入到一个初始化好的StringBuilder里。
写一个布尔方法,当满足正则[\\u4e00-\\u9fff]或[\\u3400-\\u4dbf](Unicdoe 15.0汉字范围)时返回true
StringBuilder再转成char数组,循环把每个字符传给判断方法,返回为true时selector.append(该字符);
返回主函数打印selector到控制台和文件。
简图


然后上代码:
字符处理类
readFile方法,读取文件并返回StringBuffer
filterString方法;使用hashset过滤重复字符,然后返回StringBuilder
selectKanji方法;继续转换来转换去~
isSelected方法;当传入字符串成功匹配正则,返回true

整合代码:什么?为什么import不用 *?就不用略略略~~
记得别抄下去就运行了,尽管Java跨平台能力很强,但还是要说一下绝对路径。代码里面做了一些转换,这样直接把文件拖到控制台就能很方便地输入文件路径,但仅仅是对Linux而言。Windows里绝对路径的格式当然是不同的,除了盘符还有逆天的反斜杠需要转义。MacOS呢,没用过不知道(好饿,早知道不学计算机了),应该和linux类似。
当然如果文件都在同一个目录下,倒是用不着绝对路径,那么都是通用的。

运行效果图
