首页 > 技术文章 > java基础——随机数问题

FanJava 2018-03-07 14:16 原文

/**
 * 要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是所有的英文字母包含大小写和数字,
 * 按照编码顺序排序,每行打印4个,要求首字符对齐
 * @author fanyukai 
 *
 */
public class RandomNum {

    public static void main(String[] args) {
        //产生随机长度(4-10)
        int randomNum = (int)(Math.random()*6)+4;//用这种方法下面的方法中数组不会越界
        /*用这种方法产生随机数,下面方法的数组有时会月结
         * Random ran = new Random();
         * int randomNum1 = ran.nextInt(7)+4;
         */
        //产生随机字符串,长度为随机产生的长度(4-10)
        List<String> listStr = new ArrayList<String>();
        int i = 0,count=0;
        while(i<50){
            String ranStr=randomStr(randomNum);
            listStr.add(ranStr);
            i++;
            count++;
        }
        for(i=0;i<listStr.size();i++){
            System.out.println(listStr.get(i));
        }
        System.out.println(count);
        /*String ranStr=randomStr(randomNum);
        System.out.println(ranStr);*/
        
    }
    
    public static String randomStr(int randomNum){
        char[] str = new char[randomNum];
        int i = 0;
        while (i<randomNum){
            int f = (int) (Math.random()*3);
            if(f==0){
                str[i] = (char) ('a' + Math.random()*26);
            }else if(f==1){
                str[i] = (char) ('A' + Math.random()*26);
            }else{
                str[i] = (char) ('0' + Math.random()*10);
            }
            i++;
        }
        return str.toString();
    }

 

推荐阅读