亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java入門第三季—6.5生成隨機字符串并排序

標簽:
Java
package 随机String排序;

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

public class RandomStringSort {

    //随机数生成的最大最小范围
    private static final int MAX = 122;
    private static final int MIN = 48;
    //带泛型String的List
    private static List<String> stringList = new ArrayList<>();

    public static void main(String[] args) {
        //初始化数据
        initData();
        //排序前显示
        System.out.println("----------排序前----------");
        showData();
        //排序后显示
        Collections.sort(stringList);
        System.out.println("----------排序后----------");
        showData();
    }

    /**
     * 向List中添加数据
     */
    private static void initData() {
        for (int i = 0; i < 10; i++) {
            stringList.add(buildRandomString());
        }
    }

    /**
     * List中内容的显示
     */
    private static void showData() {
        for (String string : stringList) {
            System.out.println(string);
        }
    }

    /**
     * 生成随机字符串
     * @return String
     */
    private static String buildRandomString() {
        /*
         * a = 97
         * z = 122
         * A = 65
         * Z = 90
         * 0 = 48
         * 9 = 57
         * 首先生成48-122的随机数
         * 然后进行区间判断
         * 最后转化为char再拼接成String
         */
        StringBuilder stringBuilder = new StringBuilder();
        Random random  = new Random();
        // 随机字符串的长度
        int length;
        // 生成的随机数
        int r;
        do {
            length = random.nextInt(11);
            for (int i = 0; i < length; i++) {
                // 判断生成的随机数r是否是大小写字母或数字
                // 如果不是则重新生成r
                r = random.nextInt(MAX)%(MAX - MIN + 1) +MIN;
                while(!((r >= 48 && r <= 57)||(r >= 65 && r <= 90)||(r >= 97 && r <= 122))) {
                    r = random.nextInt(MAX)%(MAX - MIN + 1) +MIN;
                }
                stringBuilder.append((char)r);
            }
            // 这里并没有判断stringList中是否已经存在要插入的字符串
            // 因为每次的字符串都是随机长度和内容的
            // 存在重复的概率是极小的,所以忽略掉了
        } while (length == 0);
        return stringBuilder.toString();
    }
}
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消