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

一:需求分析

(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

相关推荐

  • iphone13如何快速开始,iphone 13 pro怎么快速分类app

    iPhone 13如何快速打开Siri(iPhone 13快速唤醒Siri)这个问题对于很多iPhone 13用户都会遇到,因为很多用户使用iPhone 8以及之前机型直接升级到全…

    2023-03-16
  • 农机田间作业导航方法有哪些

    为了保证用户实现高精度作业,斯维垦不仅在导航产品上优化升级,GNSS接收机内置高精度信号源板卡,还在内蒙古、新疆等地区架设CORS基站,那么网络没有覆盖的区域呢? 近日,斯维垦针对…

    2023-07-13
  • 催收人员如何催收

    这个事情我还是比较了解的,虽然我没有做过催收的工作,可我对催收的操作流程了如指掌。 催收分有内部催收和委外催收(第三方催收公司)。 ①、内部催收也就是银行的“贷后管理”无论是信用卡…

    数码科技 2023-04-19
  • switch明年会出新款吗,大陆版switch有什么不好

    后台经常收到各位的问题,如何辨别Switch是否全新,是不是翻新机器当你拿到心仪的Switch,应该如何鉴别自己拿到的是不是一台全新的机器呢? 简单的鉴别方法有两种 第一【开机红】…

    2023-05-08
  • 苹果7plus四个麦克风都失灵

    最开始是微信发送语音失败,使用录音功能也有问题,不是噪音就是没声音,就像是声音快进一样,杀后台,重启试过了都不行,后来就怀疑送话器麦克风话筒有问题,一查才知道7p有4个麦克风,底部…

    数码科技 2023-02-06
  • 红米手机锁屏密码忘了怎么解

    如果您忘记了红米手机的锁屏密码,可以通过进行硬件重置来解决问题。请先关机,然后同时按住音量增加键和电源键,进入恢复模式。在恢复模式中选择“wipe data/factory res…

    2023-09-07
  • 小米mixfold2深度评测最新

    前言: 当手机的外观被统一到直屏之后,大家对于新机外观方面的期待值就降低了很多,直到折叠屏形态的产品出现,才重新让人们看到了类似于诺基亚时代的百花齐放形态。 但在几年前,这种形态的…

    2023-07-23
  • 搜狗公众号搜索,微信公众号搜索平台有区别吗

    搜狗公众号搜索是一个非常实用的工具,可以帮助你快速找到相关的公众号文章。使用方法很简单,只需要在搜狗搜索引擎中输入关键词即可。 例如,如果你想查找关于“科学”的文章,可以输入“科学…

    2023-04-15
  • u盘格式如何转换(u盘怎么转换格式)

    U盘是目前我们在生活和工作中最常用到的移动储存设备,但是很多人却并不知道,其实U盘也是有格式之分的,每个格式都有它自己的优缺点。下面小编就带大家一起来了解一下U盘的格式有哪些以及如…

    2023-05-27
  • 中国移动的定向流量是什么流量,中国移动的定向流量是哪些

    定向流量一般是运营商和互联网企业谈好合作分成模式,然后用户在4G上网时,运营商把用户的4G流量分成两部分,一部分是用户访问合作网站或者APP的流量,一部分是访问其他APP的流量。访…

    2023-02-26