手记

Java入门第三节_随机生成数组练习

package imoocDemos;

import java.util.Random;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class StringDemo {

    public static void main(String[] args) {
        generateString();
    }
    /**
     * 输出一个字符串,字符串长度最长为10,字符长包含大小写字母和0-9
     * @return
     */
    public static void generateString() {
        //数字0-9的ASCII码是48-57
        //字符A-Z的ASCII码是65-90
        //字符a-z的ASCII码是97-122

        //字符串的输入条数是10条
        List<String> string = new ArrayList<String>(); 
        //当集合中元素不超过10个时,继续添加
        while(string.size() < 10) {
            Random rand = new Random();
            //字符串长度
            int length = rand.nextInt(9) + 1;
            char[] chr = new char[length];
            //获得10字符以内的一个字符数组
            for (int i = 0; i < length; i ++) {
                int num = rand.nextInt(123);    //随机生成一个123以内的整数
                if ((num >= 48 && num <= 57)  (num >= 65 && num <= 90)  (num >= 97 && num <= 122) ){    //判断整数是否在所需范围内
                    chr[i] = (char) num;    
                } else {
                    i --;
                    continue;
                }   
            }
            //String str = Arrays.toString(chr);    
            //这个方法得到的是一个数组样式的String,每个字符间用“,”隔开,并且两端有中括号。
            String str = new String(chr);
            if (!(string.contains(str))) {
                    string.add(str);
                    System.out.println("成功添加元素: " + str);
            } else {
                System.out.println("集合中已有相同元素:" + str);
                continue;
            }
        }

        System.out.println("排序之前的字符序列为:");
        printString(string);

        Collections.sort(string);
        System.out.println("-------------------------------");
        System.out.println("排序之后的字符序列为:");
        printString(string);

    }

    //打印字符串数组
    public static void printString(List<String> string) {
        for (String str: string) {
            System.out.println(str);
        }
    }

}
1人推荐
随时随地看视频
慕课网APP