欢迎光临散文网 会员登陆 & 注册

[Java]提取一个文件中出现过的所有汉字

2023-04-15 15:22 作者:失心龍I-ll  | 我要投稿

汉化需要这样一个工具,奈何网上没有;自己写咯~


编辑器:Visual Studio Code 1.77.1

JDK版本:Openjdk 19.0.2


基本思路:

  1. 一些交互提示,获取源文件和输出文件名

  2. 初始化一个StringBuilder: selector

  3. 读文件内容到StringBuffer

  4. 转成char然后使用hashset检查重复,将首次出现的字符写入到一个初始化好的StringBuilder里。

  5. 写一个布尔方法,当满足正则[\\u4e00-\\u9fff]或[\\u3400-\\u4dbf](Unicdoe 15.0汉字范围)时返回true

  6. StringBuilder再转成char数组,循环把每个字符传给判断方法,返回为true时selector.append(该字符);

  7. 返回主函数打印selector到控制台和文件。

简图

然后上代码:

字符处理类


readFile方法,读取文件并返回StringBuffer


filterString方法;使用hashset过滤重复字符,然后返回StringBuilder


selectKanji方法;继续转换来转换去


isSelected方法;当传入字符串成功匹配正则,返回true

整合代码:什么?为什么import不用 *?就不用略略略~~


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

当然如果文件都在同一个目录下,倒是用不着绝对路径,那么都是通用的。

运行效果图


[Java]提取一个文件中出现过的所有汉字的评论 (共 条)

分享到微博请遵守国家法律