随机名字生成小demo源码
生活随笔
收集整理的這篇文章主要介紹了
随机名字生成小demo源码
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
根據(jù)提供的文字隨機(jī)生成指定字符的名稱(chēng),挺簡(jiǎn)單的,一個(gè)小demo吧
源字符
?
?
?
package com.example.demo;import cn.hutool.core.util.RandomUtil;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.util.TreeSet;/*** 隨機(jī)名字生成小demo** @author silence丶你的名字* createTime 2021-08-12-16:35*/ public class RandomName {public static void main(String[] args) throws Exception {//字?jǐn)?shù)int length = 3;//生成的名稱(chēng)總數(shù)量int nameSize = 1000;//源文件路徑String path = "D:\\silence\\java相關(guān)雜貨鋪\\博客解答記錄\\silence\\";//讀取文本BufferedReader reader = new BufferedReader(new FileReader(path + "常用字庫(kù)表6763個(gè).txt"));String line;StringBuilder sb = new StringBuilder();while ((line = reader.readLine()) != null) {sb.append(line);}reader.close();String names = sb.toString();if (names.length() <= 0) {System.exit(-1);}//隨機(jī)生成名字放到treeSet 防止重復(fù)名稱(chēng)TreeSet<String> treeSet = new TreeSet<>();for (int i = 0; i < nameSize; i++) {String name = RandomUtil.randomString(names, length);if (name.length() == length) {treeSet.add(name);}}//寫(xiě)出System.out.println(treeSet.size() + ":個(gè)名稱(chēng)");BufferedWriter writer = new BufferedWriter(new FileWriter(path + length + "個(gè)字.txt"));for (String name : treeSet) {writer.write("\t\t\t\t\t\t\t" + name);writer.newLine();writer.flush();}writer.close();} }?
?整體代碼都比較簡(jiǎn)單。主要是讀取源文件,?然后隨機(jī)生成,再寫(xiě)入新文件
讀取:用的是原生的io流,本來(lái)想用糊涂工具包封裝的,但是\r\n?特殊字符也給讀取到String里面了,就沒(méi)用。
隨機(jī)生成:?
String name = RandomUtil.randomString(names, length); 主要是糊涂工具包的一個(gè)方法,傳入源字符,和需要生成的字符個(gè)數(shù)就可以,其實(shí)用Random 通過(guò)下標(biāo)去組合也行。工具類(lèi)用著主要是精簡(jiǎn)吧。寫(xiě)出: BufferedWriter? 沒(méi)啥特別的,主要是想用他的newLine()?根據(jù)不同的系統(tǒng)實(shí)現(xiàn)換行
總結(jié)
以上是生活随笔為你收集整理的随机名字生成小demo源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 华夏银行小白卡年费和免年费标准:终身免年
- 下一篇: 日期时间格式之间的相互转换