import java.util.Random;
public class Mytest
{
public static void main(String []args)
{

for(int j=0;j<=3;j++)
{
Random r = new Random();
int i = r.nextInt(98);
if(i>=65)
{
char a = (char) i;
System.out.println(a);
}

}

}
}我的意思是输出4位随机的大小写字母(去掉符号,忘记65-97里面有哪几位是符号了,麻烦高手加个判断语句),主要是做验证码用的,因为Random用得不熟,请高手帮忙改下我以上的代码!确实想不出来了!

解决方案 »

  1.   

    使用这个类, 在 commons-lang.jar 中的import org.apache.commons.lang.RandomStringUtils;
    // 随机四个数字
    String s = RandomStringUtils.random(4,false,true);

    // 随机四个字母
    String s2= RandomStringUtils.randomAlphabetic(4);

    // 随机取四个汉字
    String s3 = RandomStringUtils.random(4, "一二三四五六七八九十");

    System.out.println( s );
    System.out.println( s2 );
    System.out.println( s3 );
      

  2.   

    char [] s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
               for (int i=0;i<4;i++){
               System.out.print(s[new Random().nextInt(52)]);
    }这样方便多了
      

  3.   

    a-z: 65--90
    A-Z: 97--112
    如果是想随机生成汉字的话,就把随机生成的整数当成汉字的Unicode呗
    String chinese = new String(Bytes[])
      

  4.   

    汉字范围是4e00-9fq5。。十进就是19968-40869..
    从这个范围取出就行了。。出来不理想..简体中文的范围是多少?
      public static void main(String args[]){
    for(int i=0;i<100;i++){
    System.out.print((char)(new Random().nextInt(20902)+19968)+"  ");}
       }
    结果:欛  嘮  僠  鮅  薊  虻  堢  澊  精  嬪  摰  婂  榝  勐  顃  逻  畈  嵼  侇  婷  槒  迫  爦  搜  觙  傶  猰  贲  溇  圉  瘏  淴  霰  烠  饌  隷  蝑  輖  头  赉  陈  寪  葭  鋳  吸  葆  譎  虡  濯  渱  瘹  版  谞  硛  蘅  豓  鮮  縀  鲱  迺  妦  耾  夎  峍  館  頺  臈  貝  粉  瑭  蹃  蛎  熃  麨  该  臄  气  榔  嘡  漶  号  蜡  垊  矪  婶  鷲  晢  轄  捜  親  扺  苚  鐭  堶  螈  营  芈  闎  腕  謠看不懂得繁体怎么这么多...
      

  5.   

    import java.util.Random;
    public class Mytest
    {
        public static void main(String []args)
        {
            
            for(int j=0;j<=3;j++)
            {
              int a=97+(int)(math.random()*(122+1-97));//获取97——122的随机数
               char c=(char)a; //转换成字符型
                 System.out.print(c);
             }
        }
    }