public static String getChineseCharacter(long seed) throws Exception{
String str = null; //保存结果
int highPos,lowPOs; //高位、低位
Random random = new Random(seed); //随机数生成器
highPos = 176 + Math.abs(random.nextInt(39)); //计算高位数
lowPos = 161 + Math.abs(random.nextInt(93)); //计算低位数
byte[] b = new byte[2]; //转化为B类型
b[0] = (new Integer(highPos)).byteValue(); //高字节
b[1] = (new Integer(lowPos)).byteValue(); //低字节
str = new String(b, "GBK");
return str;
}
随机生成汉字算法的依据是汉字区位码。由于区位码中既有简体,又有繁体,因此随机取汉字时不能从0开始去。本例高位从176开始,低位从161开始,去掉了很大一部分繁体字和生僻字,但仍然会生成极少量繁体字及生僻字。 可查汉字区位码分布表。

本文介绍了一种基于汉字区位码的随机生成汉字算法。通过指定高位和低位范围,该算法能够有效避免生成大部分繁体字和生僻字,但仍可能生成极少量繁体字及生僻字。
3787

被折叠的 条评论
为什么被折叠?



