中文繁体和简体相互转换

/**

 * 繁体和简体的转换

 * 

 */

public class TrandtionalToSimplified {

private static String encoding = "utf-8";

private static String tra;

private static String sim;

 

/**

* 初始化繁体和简体字库

*/

public static void initChars() {

String trapath = TrandtionalToSimplified.class.getResource(

"tranditional.txt").getPath();

File trafile = new File(trapath);

String simpath = TrandtionalToSimplified.class.getResource(

"simplified.txt").getPath();

File simfile = new File(simpath);

try {

tra = FileUtils.readFileToString(trafile, encoding);

sim = FileUtils.readFileToString(simfile, encoding);

} catch (IOException e) {

e.printStackTrace();

}

}

 

/**

* 简体转繁体

* @param simplified

* @return

*/

public static String simTotra(String simplified) {

if (sim == null) {

initChars();

}

String traditional = "";

for (int i = 0; i < simplified.length(); i++) {

if (sim.indexOf(simplified.charAt(i)) != -1) {

traditional += tra.charAt(sim.indexOf(simplified.charAt(i)));

} else {

traditional += traditional.charAt(i);

}

}

return traditional;

}

 

/**

* 繁体转简体

* @param traditional

* @return

*/

public static String traTosim(String traditional) {

if (tra == null) {

initChars();

}

String simplified = "";

for (int i = 0; i < traditional.length(); i++) {

if (tra.indexOf(traditional.charAt(i)) != -1) {

simplified += sim.charAt(tra.indexOf(traditional.charAt(i)));

} else {

simplified += traditional.charAt(i);

}

}

return simplified;

}

 

/**

* 判断是否是繁体

* @param str

* @return

*/

public static boolean isTrandtional(String str) {

if (null == str)

return false;

if (str.trim() == " ")

return false;

byte[] bytes = str.getBytes();

if (bytes.length < 2)

return false;

byte aa = (byte) 0xB0;

byte bb = (byte) 0xF7;

byte cc = (byte) 0xA1;

byte dd = (byte) 0xFE;

if (bytes[0] >= aa && bytes[0] <= bb) {

if (bytes[1] < cc || bytes[1] > dd) {

return false;

}

return true;

}

return false;

}

 

/**

* 判断是否是简体

* @param str

* @return

*/

public static boolean isSimplified(String str) {

if (null == str)

return false;

if (str.trim() == " ")

return false;

byte[] bytes = str.getBytes();

if (bytes.length < 2)

return false;

byte aa = (byte) 0xB0;

byte bb = (byte) 0xF7;

byte cc = (byte) 0xA1;

byte dd = (byte) 0xFE;

if (bytes[0] >= aa && bytes[0] <= bb) {

if (bytes[1] < cc || bytes[1] > dd) {

return true;

}

return false;

}

return false;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值