如题,用java实现的.
多谢!

解决方案 »

  1.   

    呵呵!
    我的意思是在不用字库情况下。
    已知汉字的Unicode的范围是[\u4e00-\u9fa5],如何利用这些东西,以java来实现来产生随机汉字。
      

  2.   

    可以考虑Unicode编码的实现
    \u9a91
    第三位是0-9
    第四位是0-9 a-f
    第五位是0-9 a-f
    第六位是0-9 a-f
    自己随机产生后4为就能实现随机产生汉字。
      

  3.   

    给你点提示:
      System.out.println(new String(new byte[] {-42,-48}));
    汉字的区位码是用两个字节拼装一个汉字,俗称94码,你研究一下汉字编码,然后用合法的数值取代上述两个字节的数字就行了,
    至于随即产生,那你就想办法找在汉字编码范围内数字的问题了。
      

  4.   

    汉字的u码不有高位和低位吗?都是16进制,random限定的16进制数应该可以吧?
      

  5.   

    java采用了unicore编码,几乎把全世界所有国家的文字都包括进来了...当然包括GB2312和简体中文GBK
    去查下unicore表吧
      

  6.   


    int start = 19968;
    int end = 40869;
    int distance = end - start;
    long random = Math.round(Math.random() * (distance + 1) + 19968);
    char c = (char) (Integer.valueOf(Long.toHexString(random), 16)
    .intValue()); System.out.println(c);
      

  7.   

     int start = 19968;
            int end = 40869;
            int distance = end - start;
            long random = Math.round(Math.random() * (distance + 1) + 19968);
            char c = (char) (Integer.valueOf(Long.toHexString(random), 16)
                    .intValue());        System.out.println(c);13楼的产生的是繁体和简体一起的字,想问下简体字的范围是多少啊?
      

  8.   

    下面是小弟写的,不过是包含繁体汉字的!在网上找了好久也没见到简体汉字Unicode码范围import java.util.*;  
    public class test
    {
    public static void main (String[] args) {
    Random rand = new Random();
    final int start = 19968;  //  4E00(十六进制)转换成 19968(十进制)
    final int end = 40869;    //  9FA5(十六进制)转换成 40869(十进制)
                    
                    //因nextInt()方法产生的随机数是从0到指定的参数之间(不包含),所以加了1
    int temp = rand.nextInt(end+1); 
                    
                    //如果temp==0,那么会显示为汉字“一”,不会出现别的字符
    if(temp < start) temp += start;  

    //输出随机生成的汉字,和Unicode码
    System.out.println((char)temp + " " + Integer.toHexString(temp));    }
    }
      

  9.   

    在此多谢楼上各位,我在些也提供一个段代码(csdn朋友'火龙果'写的,并不是我):public class Han{
       public static final int D=0x9fa5-0x4e00+1;
       public char getRandomHan(){
           return (char)(0x4e00+Math.random()*D);
       }
    }
      

  10.   

    确实啊!
    好多好多的以unicode的实现都是简繁混在一起,也是确实很难将它们分开.
    你说的这种方法确实可以考虑.