简体字转换繁体字大全(繁体字怎样转换简体字)

一:需求分析

(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)
上一篇 2023-02-04 10:57
下一篇 2023-02-04 11:40

相关推荐

  • iphone屏幕通病(iphone手机各种款屏幕讲解)

    iPhone发布到现在已经十多年了,现在iPhone仍旧是有竞争力的手机。常言道一叶知秋,从屏幕的角度来看,iPhone的升级的确有点裹足不前,难以引领产业的方向。苹果真的“江郎才…

    2023-11-28
  • 一个手机号可以绑定几个微信

      一个手机号最多可注册或绑定5个QQ号。而且,在注册的时候,一天不宜注册太多,否则会导致注册失败。在之前的测试过程中,同一天中注册第二个账号的时候就会注册失败。但是同一个手机号码…

    2023-11-01
  • 如何看懂支付宝花呗的使用情况

    现在是互联网信息迅速发展的社会,每个人基本上都会有一部智能手机。而智能手机的功能也十分强大,除了能够进行正常的通话、发短信之外,还能进行衣食住行等各方面的移动支付消费使用。手机已经…

    2024-01-06
  • 如何在mysql中获取当前日期

    MySQL数据库恢复到指定时间点时,我们必须通过MySQL全备+MySQL增量备份(可选)+MySQL的二进制日志(binlog)进行重放来恢复到指定时间点,实际的生产环境中,可能…

    2023-08-01
  • 三星note9值不值得买(三星note 22曝出)

    北京时间8月9日晚,三星在美国纽约发布了旗舰新机三星Galaxy Note9,作为历来的安卓机皇,三星Galaxy Note9这次又带着哪些技术抢跑了呢? S Pen:商务办公和艺…

    2023-05-17
  • 华为荣耀手机怎么设置键盘皮肤

    大家好! 在使用手机的过程中,键盘是不可缺少的部件。 无论我们回复消息、发布评论亦或者是搜索自己想要的资料,都离不开键盘。 而好看的且自己喜欢的键盘皮肤可以让们享受视觉盛宴,打字时…

    2024-01-08
  • 为什么199号段无法注册(手机号无法注册apple id)

    果粉之家,专业苹果手机技术研究十年!您身边的苹果专家~ 相信每一位iPhone用户都有一个自己专属的Apple ID,因为在使用苹果的各项服务时,你都需要登录Apple ID,包括…

    2023-02-28
  • 用手机怎么越狱苹果

    越狱有风险,越狱需谨慎。苹果手机系统因为会自动杀进程所以容易维持好的机器环境,越狱之后可以体验到更多的自定义功能,不过一般人不建议越狱,除了喜欢追求其他开发功能的人,不过现在很多都…

    数码科技 2023-06-23
  • 文字转语音的软件哪个好免费

    文字转语音软件是近年来技术的一项创新,它可以将大段的文字内容无缝转化为语音播报,在繁忙的现代社会中,它已成为许多人追求高效率生活的利器之一。而通知栏文字转语音功能则更为实用,它可以…

    2023-07-16
  • 三星s7 edge奥运版将至 和蝙蝠侠版差距甚远

    【丫丫网手机资讯】之前三星为奥运会推出过多款纪念版智能手机,包括2012年伦敦奥运版的Galaxy S3、Galaxy Note以及两年后冬奥会的限量版Galaxy Note 3,…

    2023-03-13