随机名字生成小demo源码

根据提供的文字随机生成指定字符的名称,挺简单的,一个小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;/*** 随机名字生成小demo** @author silence丶你的名字* createTime 2021-08-12-16:35*/
public class RandomName {public static void main(String[] args) throws Exception {//字数int length = 3;//生成的名称总数量int nameSize = 1000;//源文件路径String path = "D:\\silence\\java相关杂货铺\\博客解答记录\\silence\\";//读取文本BufferedReader reader = new BufferedReader(new FileReader(path + "常用字库表6763个.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);}//随机生成名字放到treeSet 防止重复名称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);}}//写出System.out.println(treeSet.size() + ":个名称");BufferedWriter writer = new BufferedWriter(new FileWriter(path + length + "个字.txt"));for (String name : treeSet) {writer.write("\t\t\t\t\t\t\t" + name);writer.newLine();writer.flush();}writer.close();}
}

 

 整体代码都比较简单。主要是读取源文件, 然后随机生成,再写入新文件

读取:用的是原生的io流,本来想用糊涂工具包封装的,但是\r\n 特殊字符也给读取到String里面了,就没用。

随机生成: 

String name = RandomUtil.randomString(names, length); 主要是糊涂工具包的一个方法,传入源字符,和需要生成的字符个数就可以,其实用Random 通过下标去组合也行。工具类用着主要是精简吧。

写出: BufferedWriter  没啥特别的,主要是想用他的newLine() 根据不同的系统实现换行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

silence丶你的名字

/*** 自媒体文章自动审核服务** author silence丶你的名字* createTime 2021-08-22-17:57*/ Service Log4j2 public class WemediaNewsAutoScanServiceImpl implements WemediaNewsAutoScanService {/*** fastServer 地址*/Value("${fdfs.url}")private String fileS…

java.security.invalidkeyexception: illegal key size or default parameters

解决原文摘自&#xff1a;Java实现AES加密,异常java.security.InvalidKeyException: Illegal key size 的解决_走过的足迹-CSDN博客Java实现AES加密&#xff0c;抛出异常如下&#xff1a;java.security.InvalidKeyException: Illegal key size代码参考 http://my.oschina.net/J…

Caused by: org.springframework.boot.web.server.PortInUseException: Port 8081 is already in use 端口占用

Caused by: org.springframework.boot.web.server.PortInUseException: Port 8081 is already in use 解决引用&#xff1a; 在dos下&#xff0c;输入 netstat -ano|findstr 8080 //说明&#xff1a;查看占用8080端口的进程 显示占用端口的进程 taskkill /pid 9476 …

Linux+Docker+腾讯云/阿里云服务器 安装MySQL相关命令整理

注&#xff1a;主要是收集整理一些常用的命令 主要参考&#xff1a;狂神说docker以及其他的一些命令收集。主要是因为平常安装的mysql外部无法访问 MYSQL的创建用户&#xff0c;授权用户&#xff0c;删除用户&#xff0c;查看用户_ZJE-CSDN博客_mysql 显示用户1.查看用户2.创…

list.size为1但是内容为null

又是一件离奇的事被我遇到了&#xff0c;哈哈。测试环境暴露出来的问题。还奇怪了好一会儿。然后查了一下资料。原来很多人都遇到了。大概原因就是 sql语句使用了计算函数sum(),但是where条件出来的数据为空&#xff0c;最后返回到java 映射进list了。 造成了list.size为1但是内…

遍历这些字符串,如果字符串没有包含数字的,就将字符串中的小写字母转成大写字母并打印字符串

package cn.silence;public class StrDemo3 {/*** 有如下字符串:"12ab","java","cd","Server78"* //遍历这些字符串&#xff0c;如果字符串没有包含数字的&#xff0c;就将字符串中的小写字母转成大写字母并打印字符串*/public static…

idea springboot一直卡在启动 没有日志输出

断点从 springApplication.run(args)&#xff0c;进入 在 SpringApplication&#xff0c;322行 handleRunFailure(context, ex, exceptionReporters, listeners); 可以看到错误信息。 修改后正常启动

40029错误{“errcode“:40029,“errmsg“:“invalid code, rid: 623bbdcd-3c97f4af-5a2c06d6“}

背景&#xff1a;服务器获取微信小程序openid的时候&#xff0c;报code无效。 但是code是根据开发者文档生成的。服务器配置也没有问题。 因为服务器&#xff0c;wechatAppId 和 wechatSecret不一致&#xff0c;会分别报这两个的错误。 最终检查为&#xff0c;生成code的APP…

CORS error 状态码451

项目背景&#xff0c;测试环境的前端代码&#xff0c;指向本地开发机。访问451 谷歌浏览器 查询错误码猜测&#xff0c;可能是跨域问题。其实具体错误也不是特别清楚。就想着换个浏览器。 换搜狗浏览器。问题解决了。记录一下

javassist将类的类型修改,将接口修改为类

将接口interface 修改为class 接口 接口字节码 修改为class类后的字节码 将接口修改成为了&#xff0c;class类 但是这里还有一个坑&#xff0c;是class 没有默认构造&#xff0c;需要添加一个无参构造&#xff0c;不然不能实例化对象 这是生成构造方法后的字节码&#xff0c;…

根据字节码获取类的绝对路径

适用于当前模块或引入模块。 不适用于第三方jar包 /*** 根据字节码获取类绝对路径** param clazz clazz* return classRealPath*/private static String getClassRealPath(Class<?> clazz) {String classPath clazz.getName().replace(".", "/") …

Javassist给方法添加形参,给方法添加参数

前言&#xff1a; 此次用到的jar包 Javassist 此篇博文不是教大家怎么去了解他&#xff0c;因为我也不是很了解 主要是因为这两天有一个需求是扩展knife4j 需要用到大量反射了解到的。 因为这方面资料太少了。我也是慢慢摸索出来的。把这些发出来吧。 我理解的 Javassist 主…

javassist动态给方法添加注解,动态给形参添加注解,动态给类添加注解

参考文档 这个写的挺全的&#xff0c;就是写的有点丑 javassist教程_不懂人情世故的博客-CSDN博客_java javassist转载 https://www.cnblogs.com/rickiyang/p/11336268.htmljavassist使用全解析Java 字节码以二进制的形式存储在 .class 文件中&#xff0c;每一个 .class 文件包…

解决javassist不能重复加载字节码的问题

因为我的是一个接口&#xff0c;所以麻烦诸多。 事实上在类加载前做好准备工作&#xff0c;不会遇到这个问题&#xff0c;但是我正巧&#xff0c;在使用javassist的时候需要加载类&#xff0c;因为我要读取源码&#xff0c;拿到注释&#xff0c;再通过ssit 修改字节码&#xf…

根据type类型判断是否为基本数据类型,或基本数据类型的包装类,或泛型为基本数据类型

根据type类型判断是否为基本数据类型&#xff0c;或基本数据类型的包装类&#xff0c;或泛型为基本数据类型 /*** 判断是否为基本数据类型&#xff0c;或基本数据类型的包装类&#xff0c;或泛型为基本数据类型* string true* int true* Integer true* String[] true* user[] …

根据参数类型,获取泛型里所有的引用clazz,获取泛型实际参数

/*** 根据参数类型&#xff0c;获取泛型里所有的引用clazz* 列&#xff1a; public List<PageResult<List<User>>> intTest(RequestEntity<Map<String, List<PageResult<User>>>> req)** aClass class org.springframework.http.Re…

根据class判断是否为基本数据类型,或基本数据类型的包装类,或基本类型的数组,不考虑泛型

/*** 判断是否为基本数据类型&#xff0c;或基本数据类型的包装类&#xff0c;不考虑泛型* string true* int true* Integer true* String[] true* user[] false* List<string> false* list<user> false*/private static boolean isPrimitive(Class<?> cl…

反射根据类型,提取引用类型clazz

根据反射&#xff0c;提取引用类型&#xff0c;不包含基本数据类型&#xff0c;以及基本数据类型的包装类&#xff0c;及单列集合&#xff0c;和双列集合 /*** 是否为引用数据类型*/private static boolean isPrimitive(Class<?> clazz) {if (clazz.equals(String.class…

通过反射遍历属性,找出基本数据类型,和自定义引用类,以便生成接口文档时使用

/*** 是否为一个用户标准bean&#xff0c;不考虑泛型情况*/private static boolean isBean(Class<?> clazz) {if (clazz.equals(String.class) || ClassUtil.isBasicType(clazz)) {return false;}if (clazz.isArray() && ClassUtil.isSimpleValueType(clazz.get…

通过反射还原实际参数类型

/*** 根据类型提取所有关联参数*/public static void getAllParameter(Type type, List<Class<?>> list) {Class<?> c1 TypeUtil.getClass(type);if (type instanceof ParameterizedType) {Type[] ts ((ParameterizedType) type).getActualTypeArguments…