JAVA 生成同音字的方法,随机生成汉字,汉字转拼音,写的不好,望指正.谢谢~
好啦,我知道我写的不咋....希望有更好方法的人可以告诉我~
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. 使用WinningNumber()方法随机生成一组1-33的红球号码和1-16的蓝球号码,作为中奖号码.2. 同样使用WinningNumber()方法随机生成一组作为用户号码.3 ...
- 【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)
[PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件 ...
- java生成短信验证码_Java随机生成手机短信验证码的方法
本文实例讲述了Java随机生成手机短信验证码的方法.分享给大家供大家参考,具体如下: /** * 创建指定数量的随机字符串 * @param numberFlag 是否是数字 * @param len ...
- Java口算练习软件(随机生成10道100以内的数学练习题)
Java口算练习软件 使用Java编写口算练习软件 实现以下功能点: 1.随机生成10道100以内的加减法练习题 2.设计GUI界面(包含"生成题目"."上一题" ...
- java随机生成n位数字_java随机生成n个不相同的整数
使用java的 java.util.Random import java.util.Random; /** * 随机生成n个不同的数 * * @author 张俊峰 * */ public class ...
- JAVA学习日志 关于调用方法、生成对象的例子。还是用数字卦程序修改
今天学习如何调用方法,生成,建立对象.将程序在原数字卦程序里做了很多修改.多了一个CalculateData对象,作为存储卦象信息,增加了名字,便于以后学会存储之后多人进行记录.输入部分从原来的nex ...
- java 随机生成n个整数_java随机生成n个不相同的整数
使用java的 java.util.Random import java.util.Random; /** * 随机生成n个不同的数 * * @author 张俊峰 * */ public class ...
- python随机生成正态分布_正态分布数据随机生成工具
http://www.petroleumcloud.cn/pages/620.html 正态分布,又名高斯分布,是一个非常重要的概率分布.在数学.物理及工程等领域以及统计学的许多方面有着重大的影响力. ...
- python随机生成正态分布_正态分布数据随机生成
http://www.petroleumcloud.cn/pages/620.html 正态分布,又名高斯分布,是一个非常重要的概率分布.在数学.物理及工程等领域以及统计学的许多方面有着重大的影响力. ...
最新文章
- ethercard php_使用Arduino和ENC28J60以太网LAN网络模块发送HTTP POST请求
- 不能创建Outlook邮件的解决办法
- js中三元运算符的两种情况
- python 字符串匹配like_python中关于正则表达式一
- 【LeetCode】【HOT】215. 数组中的第K个最大元素(优先队列)
- CSS初始化示例代码
- Ablation study 是什么意思?
- 深度 | 从各种注意力机制窥探深度学习在NLP中的神威
- [android视频教程] 传智播客android开发视频教程
- 比较器应用二:方波和三角波产生
- 富士通Fujitsu DPK2180T 打印机驱动
- 带计算机功能的私有云,网盘关停不用愁 教你打造个人私有云
- 微信小程序高德地图获取当前定位
- Java全栈学习day05(面向对象02)
- Qt Creator嵌入式python时报错error: ::hypot has not been declared
- html5 tooltip,HTML5 教程之CSS 提示工具(Tooltip)
- 计算机上画正比例函数,信息技术应用 用计算机画函数图象优质课教学设计
- 罗克韦尔自动化荣膺“2019全球最具商业道德企业”,这是该公司第11年上榜
- H3C单臂路由的配置
- XV6 RISCV源码阅读报告之中断