1. 程式人生 > >JAVA 生成同音字的方法,隨機生成漢字,漢字轉拼音,寫的不好,望指正.謝謝~

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 生成同音方法,隨機生成漢字,漢字拼音,不好,指正.謝謝~

好啦,我知道我寫的不咋....希望有更好方法的人可以告訴我~ import java.io.UnsupportedEncodingException; import java.util.Random; import net.sourceforge.pinyin4j.Piny

Java 的亂碼解決方法 統一編碼UTF-8 ()

一、介紹兩個類URLEncoder//編碼URLDecoder//解碼看看下面的測試輸出,你就明白是做什麼的了import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.

python中文(漢字拼音

1.python庫pypinyin 可以使用 pip 進行安裝: $ pip install pypinyin easy_install 安裝: $ easy_install pypinyin 原始碼安裝: $ python setup.py instal

java隨機生成一個無序且長度不大於10的符串

image ack con 技術 exti pen collect tint span package xiangmu; import java.util.ArrayList; import java.util.Collections; import java.ut

java基礎 數組 Set Map 集合綜合應用 生成帶0的隨機符串 "00000001" 水果商品號問題

set map 綜合 rand rgs omap 蘋果 查詢 pac 不能 package com.swift.test01; /*有四種水果(蘋果,香蕉,西瓜,橘子) 1、給每種水果設定一個商品號,商品號是8個0-9的隨機數,商品號碼不能重復, 最小值 "0000000

java如何隨機生成定長的符串

時間 tle eof 長度 bcd pow val gnu 字符串 小數,字符串、時間等示例代碼 public class RandomTest { public static Random rand = new Random(); public stat

Java 隨機生成漢字

     漢字以兩個位元組儲存,稱為“區位碼”,高位叫區碼,低位叫位碼,有這倆位元組組成漢字。假設有一張漢字表,橫豎都是 94列,那麼區碼就相當於行,位碼就相當於列,根據行列就可以確定一個漢字了,這有點像二位陣列==,GB2312大致就是按照這種方式實現的

Java隨機生成大寫字母的方法

     作者學習Java時間不長,對Java還不是很瞭解,網上搜索並沒有發現Java提供隨機生成字母的方法,有網友通過定義一個包含所有字母的辦法進行隨機字母生成,但這樣很費時間。想到通過ASCII表的辦法,實現數字與字母的轉化,程式碼如下import java.util.A

Java隨機生成常用漢字驗證碼

import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; i

java微信小程序參數二維碼生成帶背景圖加體(無限生成)

width sts addheader parent mob leo asics con system 需求 : 1,因為項目需求 ,生成數以萬計的二維碼       2 ,每個二維碼帶不同的參數    3,二維碼有固定背景圖

要求根據RandomStr.java:使用類型轉換生成六位驗證符串,示例程序每次運 行時,都會生成不同的符串。

str ima method edi 驗證碼 不同的 [] 類型 直接 1.程序設計思想驗證碼 ①定義一個字符串變量來保存隨機生成的。 ②利用循環產生六位隨機數,在產生每一位時將其轉換為char類型並寫在字符串後面。 ③利用對話框顯示生成的驗證碼,並提示用戶輸入驗證碼。 ④

根據RandomStr.java:使用類型轉換生成六位驗證符串。

錯誤 mstr 並且 text equals 再次 mce [] images 一、程序設計思想: 1.for循環產生六個字符密碼,每一個隨機字符密碼通過char進行Math.Random()的轉換。 2.構建輸入輸出窗體,設置提示信息。 3.通過do_while結構使得程

Java基礎之隨機生成數字和字母

字符集 其中 大寫 排列 += 例子 order ascii碼表 方法 字母與數字的ASCII碼 目 前計算機中用得最廣泛的 字符集及其編碼,是由美國國家標準局(ANSI)制定的ASCII碼(American Standard Code for Information In

java中如何使用空參構造方法自動生成不同名字的對象,使用非靜態的屬性和靜態屬性有什麽區別,原因是什麽?如何理解static關鍵字

區別 關鍵字 內部 方法 屬性 count per setname person 空參構造自動生成對象時,使用非靜態的屬性 代碼: package com.swift; //使用無參構造方法自動生成對象,序號不斷自增 public class Person { p

java----隨機生成指定長度的內容

學習記錄public class RandomNumber{ //隨機生成指定長度的數字+字符串 或 文字 public static String getRandomNumberAndString(int lengthOfString){ int i=0; int

隨機生成32位符串算法

num math dom ges ima parseint 技術分享 com cnblogs 隨機生成32位字符串算法: function getRandom() { var arr = ["0", "1", "2", "3", "4"

Python隨機生成指定長度符串並保存到mysql中

python random 網上看到一個python練習題,要隨機生成8位數的優惠券,並希望能保存到mysql數據庫中。自己查資料寫了下面的一段代碼完成這個小作業#!/usr/bin/env python # -*- coding: utf-8 -*- #author qingmiao imp

C#生成不重復隨機符串類

content tran () fff ati 書寫 get mar title 本文實例講述了C#生成不重復隨機字符串類。分享給大家供大家參考。具體如下: 這個C#類用於隨機產生不重復的字符串,可以指定字符串範圍,可以指定要產生字符串的長度using System; n

ruby隨機生成符串

char bsp 隨機生成 turn span pos return 一個 生成 隨機生成一個固定位數的字符串: def newpass( len ) chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").t

java與WebService對接案例--生成代碼方法

sdl2 提示 color 一半 object 為我 客戶端代碼 用友 .html   前端時間出差做項目,因為我們給對三方工廠做Mes項目,其中有一個報工環節,需要我們的Mes中將產品提交到他們的U9(Erp)上,但是由於u9是用友的產品,用c#寫的,而我是用java寫的