我是先用Math类的random方法生成数字的随机数,再将某些位的数字随机替换成大小写的字母,这个方法比较麻烦,哪位有更好的实现方法?
关注ing.......

解决方案 »

  1.   

    import java.util.*;
    public class Test {
      public Bbb() {
      }
      public static void main(String[] args) {
        Test test1 = new Test();
        System.out.println(Math.abs(new Random().nextInt())%100000000);
      }
    }
      

  2.   


       long nowtime = new java.util.Date().getTime(); 
    //取当前的时间作为一个随机的参数    String rodomtext= oMD5.getMD5ofStr(String.valueOf(nowtime)+"rodom").substring(0,8);//md5后再取前8位.这个字符串的随机性 非常高了。
      

  3.   

    /**
       * 方法说明:
       *   该函数获得随机数字符串
       *   @param   iLen int :需要获得随机数的长度
       *   @param   iType int:随机数的类型:'0':表示仅获得数字随机数;'1':表示仅获得字符随机数;'2':表示获得数字字符混合随机数
       *   @since 1.0.0
       */
      public static final String CreateRadom(int iLen,int iType){
        String strRandom="";//随机字符串
        Random rnd = new Random();
        if (iLen<0){
          iLen=5;
        }
        if ((iType>2) ||(iType<0)){
          iType=2;
        }
        switch (iType) {
          case 0 :
            for (int iLoop=0;iLoop<iLen;iLoop++){
              strRandom += Integer.toString(rnd.nextInt(10));
            }
            break;
          case 1 :
            for (int iLoop=0;iLoop<iLen;iLoop++){
              strRandom += Integer.toString((35-rnd.nextInt(10)) ,36);
            }
            break;
          case 2 :
            for (int iLoop=0;iLoop<iLen;iLoop++){
              strRandom += Integer.toString(rnd.nextInt(36) ,36);
            }
            break;
        }
        return strRandom;
      }
      

  4.   

    楼上为什么用String 不用StringBuffer呢
      

  5.   

    binny(骑个破车看夕阳) 
    我不是很清楚他们的区别,给我讲讲好么?
    谢谢了。
      

  6.   

    在運行結果上兩者沒有任何區別,但是用String 得時候,
    str += newStr 
    每一次都會轉變為 str = new StringBuffer(str).append(newStr).toString();
    一次兩次還可以,如果放在循環裏面,會產生無數個中間String,和StringBuffer而直接用StringBuffer,只是在最後toString()一下就可以了,這樣只有一個StringBuffer和String
      

  7.   

    Thanks very much!
    谢谢~!
      

  8.   

    生成字母可这样
    请问如何随机生成a-z的字母
    char c =(char)((int)(Math.floor(Math.random() * 26)) + 'a');做个循环就可以