如何在java中随机生成常用汉字

如何在java中随机生成常用汉字

/**
* 原理是从汉字区位码找到汉字。在汉字区位码中分高位与底位, 且其中简体又有繁体。位数越前生成的汉字繁体的机率越大。
* 所以在本例中高位从171取,底位从161取, 去掉大部分的繁体和生僻字。但仍然会有!!
*
*/
@Test
public void create() throws Exception {
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());
str = new String(b, "GBk");//转成中文
System.err.println(str);
}

/**
* 旋转和缩放文字
* 必须要使用Graphics2d类
*/
public void trans(HttpServletRequest req, HttpServletResponse resp) throws Exception{
int width=88;
int height=22;
BufferedImage img = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
Graphics g = img.getGraphics();
Graphics2D g2d = (Graphics2D) g;
g2d.setFont(new Font("黑体",Font.BOLD,17));
Random r = new Random();
for(int i=0;i<4;i++){
String str = ""+r.nextInt(10);
AffineTransform aff = new AffineTransform();
aff.rotate(Math.random(),i*18,height-5);
aff.scale(0.6+Math.random(), 0.6+Math.random());
g2d.setTransform(aff);
g2d.drawString(str,i*18,height-5);
System.err.println(">:"+str);
}
g2d.dispose();
ImageIO.write(img, "JPEG",resp.getOutputStream());
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-01
每个汉字对应的都有它的编码

换句话也可以理解成,每个汉字对应的都有其 编码的数字!

我们随机生成一个数字去找它对应的 汉字就是了!

常用汉字 对应的字库有 GB2312

我没有看文档 ,生成的汉字可能有 数字或字母,你检查一下,若是字母或数字重新生成一下就行了!
下面是具体的参考!
http://wenku.baidu.com/view/8cd9c7d5b9f3f90f76c61bdc.html本回答被提问者采纳
第2个回答  2010-11-01
我只告诉你关键的
至于你能不能做出来,就看你自己的悟性了,呵呵
System.out.println( ( ( char ) 12 ) );

如何在java中随机生成常用汉字
\/ 原理是从汉字区位码找到汉字。在汉字区位码中分高位与底位, 且其中简体又有繁体。位数越前生成的汉字繁体的机率越大。所以在本例中高位从171取,底位从161取, 去掉大部分的繁体和生僻字。但仍然会有!!\/ Test public void create() throws Exception { String str = null;int hightPos, low...

java 随机生成汉字昵称,急求
public char getRandomHan() { return (char)(0x4e00 + ran.nextInt(delta)); }}随机生成汉字的代码,希望能帮助到您。

Java中怎样产生随机数和随机字母
java产生随机数和随机字母,使用madom类,示例如下:package com.qiu.lin.he;public class CeShi {public static void main(String[] args) {int str1 = 0;for (int i = 0; i < 25; i++) {\/\/ 你想生成几个字符的,就把4改成几,如果改成1,那就生成一个随机字母.str1 = (char) ...

java随机生成汉语名字,比如说,威猛的小老虎,萌萌哒小松鼠,求大神解答...
最好是你数据库存储一些这样的数据,然后用java代码随机选取,,,感觉其他的不太现实,就算弄出来,万一生成的数据是什么黄色昵称怎么办,所以最好是用java代码从你指定的库中随机选,可以让运营人员多录入一些数据嘛

Java怎么产生随机数?
一、利用random方法来生成随机数。在Java语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用。在Math类中,Java语言提供了一个叫做random的方法。通过这个方法可以让系统产生随机数。二、通过Random类来生成随机数。在Java语言中,除了可以通过random 方法来产生随机数之外,还可以通过一个random...

用java编写一个在类型为String中文字字符串随机生成三个不重复的中文...
不重复就把中文字放置set集合中。set<Character> set = new hashSet<Character>();set.add((char)random.nextInt(40870-19968)+19968);迭代放置数组中

...我是java新手,我想随机生成一个整数,然后根据汉字编码查询对应汉字...
import java.util.Random;public class test { public static void main(String[] args) { Random r = new Random();String random =r.nextInt(9999)+"";String a = CodeToChinese(random);System.out.println("随机数是 :"+random);System.out.println("根据随机的区位码得出的是:"+a)...

如何用java随机生成一个字母
char c=(char)(int)(Math.random()*26+97);System.out.println(c);通过随机函数生成,字母对应的int整型数字,然后转换才char类型的字母。或 tring chars = "abcdefghijklmnopqrstuvwxyz";System.out.println(chars.charAt((int)(Math.random() * 26)));根据chars 随机截取其中的一个字母。

Java随机抽取人名完整代码
public static void main(String[] args) { \/\/定义人名数组 String [] name = {"张三","李四","王五","八神庵","不知火舞","大蛇","景天","唐雪见","李逍遥","赵灵儿"};\/\/随机生成数组下标、int num = (int)(Math.random() * 1000);\/\/对生成的随机数进行判断,如果小于数组下标...

java怎么随机生成一个字符串?
产生随机字符串 \/ private static Random randGen = null;private static char[] numbersAndLetters = null;public static final String randomString(int length) { if (length < 1) { return null;} if (randGen == null) { randGen = new Random();numbersAndLetters = ("0123456789abcdefg...

相似回答