好啦,我知道我写的不咋....希望有更好方法的人可以告诉我~

import java.io.UnsupportedEncodingException;
import java.util.Random;

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 test2 {

public static void main(String[] args) {

String s = "哈喽";
char[] c = s.toCharArray();
for (int i = 0; i < c.length; i++) {
System.out.println(test(""+c[i]));
}

}

public static String test(String pa){
boolean is_con = true;
String result = "";
while(is_con){

String a  = pa;
String b = getRandomJianHan(1);
if(translation(a).equals(translation(b))){
if(a.equals(b)){
continue;
}
// System.out.println(a);
// System.out.println(b);
// System.out.println(i);
result = b;
is_con = false;

}else{
is_con = true;
}
}
return result;
}

// 将字符串转移为ASCII码
public static String getCnASCII(String cnStr) {
StringBuffer strBuf = new StringBuffer();
byte[] bGBK = cnStr.getBytes();
for (int i = 0; i < bGBK.length; i++) {
strBuf.append(Integer.toHexString(bGBK[i] & 0xff));
}
return strBuf.toString();
}

public static String getRandomJianHan(int len)
   {
       String ret="";
         for(int i=0;i<len;i++){
             String str = null;
             int hightPos, lowPos; // 定义高低位
             Random random = new Random();
             hightPos = (176 + Math.abs(random.nextInt(39))); //获取高位值
             lowPos = (161 + Math.abs(random.nextInt(93))); //获取低位值
             byte[] b = new byte[2];
             b[0] = (new Integer(hightPos).byteValue());
             b[1] = (new Integer(lowPos).byteValue());
             try
             {
                 str = new String(b, "GBk"); //转成中文
             }
             catch (UnsupportedEncodingException ex)
             {
                 ex.printStackTrace();
             }
              ret+=str;
         }
     return ret;
   }

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. 双色球彩票生成之一用户彩票号码随机生成

    主要流程如下:1. 使用WinningNumber()方法随机生成一组1-33的红球号码和1-16的蓝球号码,作为中奖号码.2. 同样使用WinningNumber()方法随机生成一组作为用户号码.3 ...

  2. 【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

    [PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件 ...

  3. java生成短信验证码_Java随机生成手机短信验证码的方法

    本文实例讲述了Java随机生成手机短信验证码的方法.分享给大家供大家参考,具体如下: /** * 创建指定数量的随机字符串 * @param numberFlag 是否是数字 * @param len ...

  4. Java口算练习软件(随机生成10道100以内的数学练习题)

    Java口算练习软件 使用Java编写口算练习软件 实现以下功能点: 1.随机生成10道100以内的加减法练习题 2.设计GUI界面(包含"生成题目"."上一题" ...

  5. java随机生成n位数字_java随机生成n个不相同的整数

    使用java的 java.util.Random import java.util.Random; /** * 随机生成n个不同的数 * * @author 张俊峰 * */ public class ...

  6. JAVA学习日志 关于调用方法、生成对象的例子。还是用数字卦程序修改

    今天学习如何调用方法,生成,建立对象.将程序在原数字卦程序里做了很多修改.多了一个CalculateData对象,作为存储卦象信息,增加了名字,便于以后学会存储之后多人进行记录.输入部分从原来的nex ...

  7. java 随机生成n个整数_java随机生成n个不相同的整数

    使用java的 java.util.Random import java.util.Random; /** * 随机生成n个不同的数 * * @author 张俊峰 * */ public class ...

  8. python随机生成正态分布_正态分布数据随机生成工具

    http://www.petroleumcloud.cn/pages/620.html 正态分布,又名高斯分布,是一个非常重要的概率分布.在数学.物理及工程等领域以及统计学的许多方面有着重大的影响力. ...

  9. python随机生成正态分布_正态分布数据随机生成

    http://www.petroleumcloud.cn/pages/620.html 正态分布,又名高斯分布,是一个非常重要的概率分布.在数学.物理及工程等领域以及统计学的许多方面有着重大的影响力. ...

最新文章

  1. ethercard php_使用Arduino和ENC28J60以太网LAN网络模块发送HTTP POST请求
  2. 不能创建Outlook邮件的解决办法
  3. js中三元运算符的两种情况
  4. python 字符串匹配like_python中关于正则表达式一
  5. 【LeetCode】【HOT】215. 数组中的第K个最大元素(优先队列)
  6. CSS初始化示例代码
  7. Ablation study 是什么意思?
  8. 深度 | 从各种注意力机制窥探深度学习在NLP中的神威
  9. [android视频教程] 传智播客android开发视频教程
  10. 比较器应用二:方波和三角波产生
  11. 富士通Fujitsu DPK2180T 打印机驱动
  12. 带计算机功能的私有云,网盘关停不用愁 教你打造个人私有云
  13. 微信小程序高德地图获取当前定位
  14. Java全栈学习day05(面向对象02)
  15. Qt Creator嵌入式python时报错error: ::hypot has not been declared
  16. html5 tooltip,HTML5 教程之CSS 提示工具(Tooltip)
  17. 计算机上画正比例函数,信息技术应用 用计算机画函数图象优质课教学设计
  18. 罗克韦尔自动化荣膺“2019全球最具商业道德企业”,这是该公司第11年上榜
  19. H3C单臂路由的配置
  20. XV6 RISCV源码阅读报告之中断

热门文章

  1. 数字化转型,我只推荐看这两本书
  2. Python基础+数据科学入门(三)组合数据类型
  3. 织梦网站在空间怎么转服务器,织梦网站换空间
  4. ffmpeg读取本地视频,获取视频帧
  5. 程序员如何渡过中年危机
  6. 网络收集竞争情报的技巧
  7. 模仿其他游戏进行内购
  8. CleanMyMac 3自定义智能清理
  9. 期末项目——同源药膳堂
  10. c语言timer linux 回调函数_C语言回调函数详解