简体字转换繁体字大全,可以将繁体字转换为简体字的软件

一:需求分析

(1)由于公司项目在开发之初没有适配繁体语言,大概是没有考虑到有朝一日项目可以卖到台湾、香港、澳门吧。

(2)但是公司的项目确实卖到澳门了,于是客户要求把项目中的所有字体修改为繁体字,这就苦逼了,公司的项目沉淀了这么多年的代码,感觉到这是一项浩大的工程,但是老大只给了一周的时间要求修改完毕。于是考虑了一下看看这么繁琐的机械化的工作能不能由程序来完成,就各种谷歌百度,试了几种方法,没有成功,于是便手动修改,改了一天,几乎接近崩溃,一天下来累成狗,但是并没有修改多少。于是决定还是看看能不能用程序来搞定,最后整理出来下面的代码,使用Java语言编写,整个项目只用了几分钟就把所有简体字转换成了繁体字。整体思路是 读文件——>修改字体——————>写文件。使用时只需要调用changeFileFromSimpleChineseToTradionalWithRootPath(String path)方法,并传入文件夹名即可。

二:代码示例

package com.java_study;import com.spreada.utils.chinese.ZHConverter;import java.io.*;import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** Created by dd on 2022/6/8.*/public class ChangeSimpleToTraditional {public static void changeFileFromSimpleChineseToTradionalWithRootPath(String path){ArrayList<String> tempArray = new ArrayList<String>();ArrayList<String> fileList = traverseFolder2(path , tempArray);System.out.println("文件数组" + fileList);if (fileList.size()==0){return;};for (int i = 0; i<fileList.size() ; i++){readOldFileAndWriteNewFileWithFilePath(fileList.get(i));}}public static void readOldFileAndWriteNewFileWithFilePath(String filePath){// 简体转繁体try{BufferedReader bufRead = new BufferedReader(new InputStreamReader(new FileInputStream(new File(filePath))));StringBuffer strBuffer = new StringBuffer();for (String temp = null;(temp = bufRead.readLine())!= null;temp = null ){Pattern pattern = Pattern.compile("[u4e00-u9fcc]+");if (pattern.matcher(temp).find()){temp = getChinese(temp);}strBuffer.append(temp);strBuffer.append(System.getProperty("line.separator"));}System.out.println(strBuffer.toString());bufRead.close();PrintWriter printWriter = new PrintWriter(filePath);printWriter.write(strBuffer.toString().toCharArray());printWriter.flush();printWriter.close();}catch (IOException e){e.printStackTrace();}}

/**把读取的文件的每一行字符串进行正则匹配简体中文

* 并且把匹配到的简体中文替换为繁体

* 并返回替换后的字符串

* paramValue:读文件时候,读取到的每一行字符串*/

public static String getChinese(String paramValue) {String regex = "([u4e00-u9fa5]+)";String replacedStr = paramValue;Matcher matcher = Pattern.compile(regex).matcher(paramValue);while (matcher.find()) {System.out.println("----------"+matcher.group(0));ZHConverter converter2 = ZHConverter.getInstance(ZHConverter.TRADITIONAL);String traditiOnalStr= converter2.convert(matcher.group(0));replacedStr = replacedStr.replace(matcher.group(0),traditionalStr);System.out.println("zyf" + traditionalStr + replacedStr);}return replacedStr;}

/**迭代遍历传入的根文件夹,获取每一级文件夹的每个文件

* 并把文件名称以字符串形式装在数组返回

* path:根文件夹路径

* listFileName:用于返回文件路径的数组,由于这个是迭代方法采用外部传入该数组 */

public static ArrayList<String> traverseFolder2(String path , ArrayList<String> listFileName ) {File file = new File(path);if (file.exists()) {File[] files = file.listFiles();if (files.length == 0) {System.out.println("文件夹是空的!");return null;} else {for (File file2 : files) {if (file2.isDirectory()) {System.out.println("文件夹:" + file2.getAbsolutePath());traverseFolder2(file2.getAbsolutePath(),listFileName);} else {String sbsolutePath = file2.getAbsolutePath();if (sbsolutePath.endsWith(".jsp") || sbsolutePath.endsWith(".js") || sbsolutePath.endsWith(".html") || sbsolutePath.endsWith(".java") ){listFileName.add(file2.getAbsolutePath());}System.out.println("文件:" + file2.getAbsolutePath());}}}} else {System.out.println("文件不存在!");}return listFileName;}}

代码中使用了别人封装好的jar包 ZHConverter,里边封装好了简体字转换成繁体字以及繁体字转换成简体字的方法。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2022年 12月 31日 下午12:15
下一篇 2022年 12月 31日 下午12:22

相关推荐

  • 宝妈在家赚钱的十种方法

    世界上最伟大的职业就是全职妈妈,最容易被忽视,不被理解的也是全职妈妈。 “你天天在家带孩子有什么累的“ ”就知道要钱”…… 曾经也有一份好工作的我,在生完孩…

    2023年 3月 13日
  • 手机电脑文件互传神器(电脑手机蓝牙互传文件)

    现在手机功能越来越全,我们很多的工作或者学习都在手机上就能完成。但是经常还是需要从手机里面导一些文件到电脑,或者从电脑导文件到手机。比如你的领导通过微信给你发了一个文档,让你处理一…

    2023年 2月 19日
  • 投影仪投屏有几种怎么操作

    投影仪作为现代科技产品的一种,被广泛应用于生活工作等各个方面,投影仪投屏功能可以将电脑、手机等设备上的内容以大屏的方式展示出来,让人们享受更好的视觉体验,但经常有人问投影仪要怎么投…

    2023年 8月 26日
  • 怎么倒卖软件赚钱,DNF怎么倒卖赚钱【图解】

    作者:小尧Vigny 今天小尧给大家带来一期商人入门的科普教学,现如今商人不是那么吃香,材料价格幅度略低,游戏币价格比例低,和游戏币产出快,所以费很大的经历挣一点点钱会有一些捡了芝…

    2022年 12月 19日
  • 新的字体,笔刷怎么导入ps呢,ps怎么导入字体笔刷

    Ps里的功能多种多样,他是矢量图软件,基本快捷键啥的都需要我们不断的运用和积累,可以增加我们的效率 今天主要来说一下拥有了新的字体怎么导入? 首先,打开字体的文件,工具栏下面会有安…

    2023年 1月 31日
  • 图片查看器无法显示照片内存不足

    电脑打开照片提示:“照片查看器无法显示此图片,因为计算机上的可用内存可能不足。”Windows7和8默认的照片查看程序的问题,目前我还没有看到官方补丁,在win10和11及xp没有…

    2023年 4月 15日
  • 无线路由器都设置好了为什么还是没网

    假期中美滋滋的在家中在线看剧、玩儿网游,却总会出现卡顿和缓冲缓慢的现象,让人感到非常的气恼。于是,家中的无线路由器便成为了人们撒气的对象,“千错万错都是这个破无线路由器的错”!默默…

    2023年 5月 6日
  • 微信账号异常有被盗嫌疑封号怎么解除

    微信因种种原因不慎被限制登录,显示“账号异常,有被盗嫌疑”,当出现这个情况时,我们应该怎么办呢?如何避免发生,今天在此进行集中解答,遇到这个情况的小伙伴不妨参考下。 第一:临时受限…

    2023年 4月 14日
  • 中国移动服务密码忘了怎样重置

    2.10086 回信 尊敬的客户,重置密码请继续回复(1个小时内回复有效):开户时身份证件号码#新密码#新密码,温馨提示:全球通用户、动感地带用户密码为6位数,神州行用户密码为8位…

    互联网 2023年 5月 21日
  • 中信银行数字金融部介绍,中信银行信用卡线上金融业务优势

    面对互联网信贷产品的冲击,银行没有停下脚步,而是通过自我革新来应对移动支付崛起所带来的挑战。金融创新下,银行优势愈发凸显,信用卡业务的全面开花,影响并改变着未来的支付生态。 撰文 …

    2023年 7月 12日