<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          每日一例 | 生成隨機字符串

          共 9555字,需瀏覽 20分鐘

           ·

          2021-05-02 10:22

          生成隨機字符串

          我們在日常開發(fā)中,經(jīng)常會遇到需要生成隨機字符串的需求,比如用戶的初始化密碼,但這種場景下并不適合使用UUID,這時候就需要我們自己來寫這樣一個算法,下面是我之前寫過的,各位小伙伴參考下:

          /**
           * @program: example-2021.05.01
           * @description: 2021-05-01-example
           * @author: syske
           * @date: 2021-05-01 17:30
           */

          public class Example implements Readable {

              private static Random random = new Random(47);
              private static final char[] alls =
                  "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@#!$%*&/".toCharArray();
              /**
               * 生成字密碼的數(shù)量
               */

              private int count;
              /**
               * 生成密碼長度
                */

              private int length;

              /**
               * 隨機密碼生成器
               * 
               * @param count
               * @param length
               */

              public Example(int count,int length) {
                      this.count = count;
                      this.length = length;
                  }

              @Override
              public int read(CharBuffer cb) {
                  if (count-- == 0) {
                      return -1;
                  }
                  for (int i = 0; i < length; i++) {
                      cb.append(alls[random.nextInt(alls.length)]);
                  }
                  cb.append(" ");
                  return 0;
              }

              public static void main(String[] args) {
                  Scanner sc = new Scanner(new Example(39));
                  while (sc.hasNext()) {
                      System.out.println(sc.next());
                  }
              }

          }

          上面這個算法是支持批量生成的,count是你要生成的隨機字符串的數(shù)量,length是生成的字符串長度。

          生成隨機姓名

          在生成測試數(shù)據(jù)的時候,你是不是也為人員起名字和用戶名而發(fā)愁呢?這里有一套生成隨機姓名的代碼,看看唄:

          /**
           * @program: example-2021.05.01
           * @description: 隨機用戶名及姓名
           * @author: syske
           * @date: 2021-05-01 18:02
           */

          public class RandomName {
              public static String chineseString() {
                  char[] fristName = {'趙''錢''孫''李''周''吳''鄭''王''孔''江''曹''魏''劉''馮''陳''褚''衛(wèi)''蔣',
                      '沈''韓''楊''朱''秦''尤''許''何''呂''施''張''戚''謝''鄒''喻''柏''水''竇''章''云''蘇',
                      '潘''葛''奚''范''彭''郎''魯''韋''昌'};
                  String[] secondName = {"鴻煊""博濤""燁霖""燁華""煜祺""智宸""正豪""昊然""明杰""立誠""立軒""立輝""峻熙""弘文""熠彤",
                      "鴻煊""燁霖""哲瀚""鑫鵬""致遠(yuǎn)""俊馳""雨澤""燁磊""晟睿""天佑""文昊""修潔""黎昕""遠(yuǎn)航""旭堯""鴻濤""偉祺""榮軒",
                      "越澤""浩宇""瑾瑜""皓軒""擎蒼""擎宇""志澤""睿淵""楷瑞""子軒""弘文""哲瀚""雨澤""鑫磊""修杰""偉誠""建輝""晉鵬",
                      "天磊""紹輝""澤洋""明軒""健柏""鵬煊""昊強""偉宸""博超""君浩""子騫""明輝""德赫""海藍(lán)""紫云""綠萍""新凡""孤彤",
                      "天藍(lán)""采萍""代楓""憶芹""小雁""向陽""谷蓮""迎天""惜夏""安珍""迎兒""詩云""依山""凝桃""新綠""春容""樂霜""綠薇",
                      "元春""靖萍""癡綠""綺真""向菱""碧綠""寒安""綺梅""念春""友易""碧琴""海珍""春曼""沛菱""小風(fēng)""聽薇""語蕾""千亦",
                      "元冬""如楓""曼筠""書雪""幼翠""醉兒""紫嵐""爾秋""秋雁""雨陽""易珊""曼綠""友松""易波""夜柔""樂巧""紫雪""以晴",
                      "冬青""惜薇""白松""丹亦""爾梅""如綠""采雁""盼芙""小南""平天""笑天""平柏""憶柏""訪琴""秋楓""含藍(lán)""映嵐""白萍",
                      "亦雙""若柳""詩藍(lán)""安易""癡海""又靈""水琴""凡真""懷云""飛蕾""新巧""覓梅""秋曼""冷柔""孤蕊""雪露""若雁""安旋",
                      "曼云""慕曼""凌寒""醉春""醉山""書萱""巧琴""靈蘭""涵楓""向曼""迎文""爾寒""以芹""芷凝""凝柏""慕陽""千菱""從蕾",
                      "千蕾""水天""飛楓""冰山""雁萍""天凡""癡珍""夜桃""語芙""亦楓""含梅""友嵐""千秋""雁蕾""冬桃""懷巧""平綠""飛丹",
                      "又曼""映之""訪煙""沛香""宛菱""半琴""南蝶""盼云""芷松""碧雁""聽菡""尋柔""雅蝶""慕雪""雨蓮""笑冬""映卉""初菱",
                      "安白""聽萍""海絲""巧柏""冬絲""采靈""寒卉""聽薇""妙翠""元春""覓凝"};
                  int first = new Random().nextInt(fristName.length);
                  int second = new Random().nextInt(secondName.length);
                  return fristName[first] + secondName[second];
              }

              /**
               * 返回指定長度的隨機字符串
               * 
               * @param count
               * @return
               */

              public static String createUserName(int count) {
                  char[] chs = {'a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s',
                      't''u''v''w''x''y''z'

                  };
                  StringBuilder result = new StringBuilder();
                  for (int i = 0; i < count; i++) {
                      result.append(chs[new Random().nextInt(chs.length)]);
                  }
                  return result.toString();
              }

              public static void main(String[] args) {
                  // 生成姓名
                  System.out.println(chineseString());
                  // 生成用戶名
                  System.out.println(createUserName(8));
              }
          }

          項目路徑:

          https://github.com/Syske/example-everyday

          本項目會持續(xù)每日更新,讓我們一起學(xué)習(xí),一起進步,遇見更好的自己,加油呀

          - END -


          瀏覽 120
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  婷婷五月天激情小说 | 韩国三级无码无遮床戏视频 | 成人性爱视频免费看 | 香蕉依人| 91美女视频在线观看 |