汉字内码,如涡,内码为CED0,而CED1,CED2皆与涡同音.

代码如下:

import java.io.UnsupportedEncodingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class test4 {

public static void main(String[] args) {
System.out.println(test("个"));
}
public static String test(String s){
char[] c = getCode(s).toCharArray();
String test =""+ c[0] + c[1] + c[2];
for (int i = 0; i < 9; i++) {

String access = getCharacter(test + i);

if(translation(access).equals(translation(s))&&(char)(i + 48)!=c[3]){
return access;
}
}
int ii = c[2];
c[2] = (char)(ii + 49);
test =""+ c[0] + c[1] + c[2];
for (int i = 0; i < 9; i++) {

String access = getCharacter(test + i);

if(translation(access).equals(translation(s))&&(char)(i + 48)!=c[3]){
return access;
}
}

c[2] = (char)(ii + 47);
for (int i = 0; i < 9; i++) {

String access = getCharacter(test + i);

if(translation(access).equals(translation(s))&&(char)(i + 48)!=c[3]){
return access;
}
}
return null;
}

private static byte charToByteAscii(char ch) {
byte byteAscii = (byte) ch;

return byteAscii;
}
private static char byteAsciiToChar(int ascii) {

char ch = (char) ascii;
;
return ch;
}
private static String getCode(String chineseName) {
StringBuffer sb = new StringBuffer();
try {
char[] ch = chineseName.toCharArray();
for (char c : ch) {
if (isCharacter(String.valueOf(c))) {
byte[] by = String.valueOf(c).getBytes("GBK");
for (byte b : by) {
sb.append(Integer.toHexString(b & 0xff));
}
} else {
byte b = (byte) c;
sb.append(Integer.toHexString(b & 0xff));
}
}
} catch (Exception e) {
e.printStackTrace();
}

return sb.toString().toUpperCase().trim();
}
private static String getCharacter(String jiNeiMa){  
        byte b1 = (byte) Integer.parseInt(jiNeiMa.substring(0, 2), 16);  
        byte b2 = (byte) Integer.parseInt(jiNeiMa.substring(2, 4), 16);  
          
        String str = "";  
        try {  
            str += new String(new byte[]{b1,b2}, "GBK");  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
        }  
        return str;  
    }
private static boolean isCharacter(String str) {
Pattern p_str = Pattern.compile("[\\u4e00-\\u9fa5]+");
Matcher m = p_str.matcher(str);
if (m.find() && m.group(0).equals(str)) {
return true;
}
return false;
}
public static String translation(String src) {

char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();

t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4 = "";
int t0 = t1.length;
try {
for (int i = 0; i < t0; i++) {
// 判断是否为汉字字符
if (java.lang.Character.toString(t1[i]).matches(
"[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
t4 += t2[0];
} else
t4 += java.lang.Character.toString(t1[i]);
}
// System.out.println(t4);
return t4;
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return t4;
}
}

java 生成汉字同音字,拼音相同(二)相关推荐

  1. JAVA获取字符串首字拼音和全拼

    JAVA获取字符串首字拼音或者全部拼音,用的是pinyin4j. import java.util.ArrayList; import java.util.Hashtable; import java ...

  2. JAVA获取汉字首字母拼音

    JAVA获取汉字首字母拼音 jar导入 工具类 jar导入 <dependency><groupId>com.belerweb</groupId><artif ...

  3. java实现汉字文字转换拼音(全拼和简拼)工具包

    java实现汉字文字转换拼音(全拼和简拼)工具包 话不多说,直接上代码,调用即可 /** * 得到 全拼 * @param str * @return */public static String g ...

  4. java将汉字转成拼音首字母大写字母_java 根据汉字生成拼音全拼或拼音首字母的示例...

    1.情景展示 java 根据中文生成对应的拼音 2.准备工作 所需jar包:pinyin4j-2.5.0.jar 3.解决方案 导包 import net.sourceforge.pinyin4j.P ...

  5. 探索使用JAVA将汉字解析成拼音

    最近在做城市选择器的时候,有一个需求是需要把汉字转化成拼音,然后根据首字母进行列表排列,做网上找到了一份可用的源码,现在对其内部的原理进行解析,其中还有一两个点没完全理解,但是不妨碍对整体的理解,如果 ...

  6. java把汉字转换成拼音的2种方式

    java程序将汉字转成拼音的两种方法 1.使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 Java代码   import net.sourceforge.pinyin4j.Pin ...

  7. java把汉字转换成拼音_Java实现汉字转换为拼音

    本文的核心代码取自easydozer的blog:http://blog.csdn.net/easydozer/ 代码说明: Java实现汉字转换为拼音的GUI版本. GUI代码部分: /** * @( ...

  8. java将汉字转化为拼音

    在日常的开发中,可能需要将汉字转化为拼音,例如想要某些城市的开头拼音大写字母作为城市的简称,全国有几百个城市,如果需要一个一个自己拼那太麻烦了,在 Java 中,有人开发这样一个工具. 下面看一下如何 ...

  9. java生成酷炫霸气叼二维码

    java生成二维码 文章目录 java生成二维码 pom依赖 第一种类型 第二种类型 完整pom文件 pom依赖 <!--生成二维码依赖--><!-- https://mvnrepo ...

最新文章

  1. python:PATH、PYTHONPATH 和 sys.path 的区别
  2. MATLAB中导入数据:importdata函数
  3. EPANET头文件解读系列7——MEMPOOL.H
  4. 坑爹的去哪儿网订酒店经历
  5. layui上传图片,前端直接拷代码,后端……
  6. 异步发电机 matlab仿真,基于MATLABSIMULINK异步电机矢量控制系统的仿真.pdf
  7. @程序员,如何在五分钟内构建个人网盘服务?| 技术头条
  8. delphi自定义统一基础设置_Java项目构建基础:统一结果,统一异常,统一日志...
  9. pythondjangoddos_django带服务器
  10. 求解图的连通块数量——DFS方法实现
  11. java矩阵相乘泛型_21.8 实例学习:泛型矩阵类
  12. 计算机与不确定性原理,傅里叶变换和不确定性原理
  13. 【Git】解决Untracked Files Prevent Checkout的问题
  14. 打开本地html加载网页慢,浏览器打开网页很慢怎么回事_浏览器打开网页很慢如何解决...
  15. php 一天是多少秒,1天 等于 86400 秒?
  16. 春运浙江运送旅客量将达1.38亿人次 同比下降3.4%
  17. HTML+CSS错题整理
  18. JSP使用Struts1提交中文表单时乱码,字符编码问题
  19. AntDesignVue表格中列的自定义隐藏与展示
  20. 正则表达式,去除空格标点下划线等

热门文章

  1. javaweb企业门户网站(前台+后台) 课程设计 毕业设计源码
  2. 网络测试工具 iperf 使用指南
  3. ESP8266 flash清除工具安装操作(图文)
  4. 112.使用 sketch.js 实现彗星特效
  5. 四步教你DIY“终极黑客键盘”
  6. 神经网络软件系统应用,神经网络软件有哪些
  7. Large-Scale Evolution of Image Classifiers翻译
  8. 基于Flocking算法的多智能体编队matlab仿真
  9. mcjava盗版联机_盗版minecraft怎么联机
  10. matlab模拟换热过程,基于MATLAB的风冷式翅片管冷凝器的仿真模拟