该随笔为开发笔记


今天在公司接手了一个项目,在看该项目老代码时,发现上一位大佬写的随机取一串字符串还不错,在此做一次开发笔记

在他的基础上我做了点改动,但是原理一样

  /**
* 随机取一段字符串方法1
* 可规定自己想从哪些字符中取
* @author zk
*@date: 2019年8月2日 下午5:00:04
* @param str 字符串来源 如:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
* @param length 取的长度
* @return
*/
public static String getstring1(String str, int length) {
Random random=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;i<length;i++){
int number=random.nextInt(str.length());//取一个0-str.length的数
sb.append(str.charAt(number));//返回指定索引处的字符
}
return sb.toString();
}

查阅了资料

再补充两种方式:

 /**
* 随机取一段字符串方法2
* 这个是用的ASCII的原理
* @author zk
*@date: 2019年8月2日 下午5:07:31
* @param length 所需长度
* @return
*/
public static String getstring2(int length) {
Random random=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;i<length;i++){
int number=random.nextInt(3);
long result=0;
switch(number){
case 0:
result=Math.round(Math.random()*25+65);//取一个随机的ASCII码,大写字母
sb.append(String.valueOf((char)result));//转字符存起来
break;
case 1:
result=Math.round(Math.random()*25+97);//取一个随机的ASCII码,小写字母
sb.append(String.valueOf((char)result));//转字符存起来
break;
case 2:
sb.append(String.valueOf(new Random().nextInt(10)));//数字
break;
}
}
return sb.toString();
} /**
* 随机取一段字符串方法3
* org.apache.commons.lang包RandomStringUtils类randomAlphanumeric方法随机生成一定长度的字符串
* @author zk
*@date: 2019年8月2日 下午5:11:48
* @param length 所需长度
* @return
*/
public static String getstring3(int length) {
String filename=RandomStringUtils.randomAlphanumeric(length);
return filename;
}

以上就为本次的开发笔记

随机生成一串字符串(java)的更多相关文章

  1. Golang 和 Python 随机生成N位字符串

    Golang: func RandomString(n int) string { var letters = []byte("ABCDEFGHIGKLMNOPQRSTUVWXYZabcde ...

  2. PHP 小方法之 随机生成几位字符串

    if(! function_exists ('get_rand_string') ) { function get_rand_string($len=6,$format='ALL') { switch ...

  3. Js随机生成指定长度字符串

    function a(a) { var d, e, b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&q ...

  4. php 随机生成

    php随机生成6位字符串: $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';        $max = ...

  5. RandomStringUtils工具类(java随机生成字符串)

    使用RandomStringUtils可以选择生成随机字符串,可以是全字母,全数字,自定义生成字符等等... 其最基础的方法: 参数解读: count:需要生成的随机串位数 letters:只要字母 ...

  6. java中随机生成字符串的方法(三种)

    org.apache.commons.lang(2.6): 链接:https://pan.baidu.com/s/1k_oeA5AjSt6evoR7zT8gpQ 提取码:yhl5 1.生成的字符串每个 ...

  7. Java通过UUID随机生成36位、32位唯一识别码(唯一字符串)

    import java.util.UUID; /** * 通过UUID随机生成36位.32位唯一识别码(唯一字符串) * @author [J.H] * */ public class Test { ...

  8. java如何随机生成定长的字符串

    小数,字符串.时间等示例代码 String base = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 public c ...

  9. java随机生成字符串(字符随机生成类 生成随机字符组合)

    原文:http://www.jb51.net/article/45006.htm package p2p_web; import java.util.ArrayList; import java.ut ...

随机推荐

  1. v-if-else 条件判断 是否插入元素指令

    <div id="app05"> <p v-if="OK">True的时候显示,否则不显示</p> <template ...

  2. ubuntu配置px4编译环境

    一.主要参考的内容 px4的开发者手册 https://dev.px4.io/zh/setup/dev_env_linux.html 其中有的shell指令 权限设置 警告:永远不要使用sudo来修复 ...

  3. 微信jssdk安卓机分享QQ好友和QQ空间出现{"errMsg":"shareQQ:fail"}

    使用ajax请求appid之类的配置,然后进行wx.config和wx.ready,苹果机上是完全OK的,但是安卓机上十次有九次是失败,只有一次能成功,百度了一下,有人说是参数有空格,有人说是微信bu ...

  4. 生成函数小结——[ EGF ][ ln 的一个套路 ][ 概率生成函数 ]

    看了jcvb的WC2015交流课件.虽然没懂后面的复合逆部分,但生成函数感觉受益良多. 指数生成函数 集合中大小为 i 的对象的权值是 \( a_i \) ,该集合的生成函数是 \( \sum\lim ...

  5. Redis入门很简单之三【常见参数配置】

    Redis入门很简单之三[常见参数配置] 博客分类: NoSQL/Redis/MongoDB redisnosql缓存中间件memcached  Redis的一下常见设置都是通过对redis.conf ...

  6. spring+freemarker 乱码解决办法

    这样应该可以了~ <!-- freemarker config --> <bean id="freemarkerConfig" class="org.s ...

  7. mysql 安装运行学习过程中的报错问题

    错误记录(windows端): 问题1:在启动MYSQL时出现问题:“ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' ...

  8. HTTP 请求及响应 (转)

    HTTP请求 4.1.HTTP请求包括的内容 客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求. 一个完整的HTTP请求包括如下内容:一个请求行.若干消息头. ...

  9. python获取每日涨跌停股票统计,封闭时间和打开次数

    接口:limit_list 描述:获取每日涨跌停股票统计,包括封闭时间和打开次数等数据,帮助用户快速定位近期强(弱)势股,以及研究超短线策略. 限量:单次最大1000,总量不限制 积分:用户积2000 ...

  10. 进程之间的通信AIDL

    远程端: package cn.itcast.aidl; //AIDL //首先建立AIDL文件,有点和接口类似,建立好AIDL文件后, //会在gen文件夹下自动生成用于远程通信的类 //文件的后缀 ...