以下是我自己在工作中常用到的,比较好用,分享给大家。

package org.phoenix.api.utils;

import java.io.UnsupportedEncodingException;

import java.util.Random;

import java.util.concurrent.ThreadLocalRandom;

/**

* 随机字符工具类

* @author mengfeiyang

*

*/

public class RandomUtils {

/**

* 产生随机的字符串。这个方法产生的中文字符不会乱码

* @param len 字符串长度

* @return

*/

public static String getRanCHS(int len) {

String ret = "";

for (int i = 0; i < len; i++) {

String str = null;

int hightPos, lowPos; // 定义高低位

Random random = new Random();

hightPos = (176 + Math.abs(random.nextInt(39))); // 获取高位值

lowPos = (161 + Math.abs(random.nextInt(93))); // 获取低位值

byte[] b = new byte[2];

b[0] = (new Integer(hightPos).byteValue());

b[1] = (new Integer(lowPos).byteValue());

try {

str = new String(b, "GBK"); // 转成中文

} catch (UnsupportedEncodingException ex) {

ex.printStackTrace();

}

ret += str;

}

return ret;

}

/**

* 随机产生指定数个的小写英文字符

* @param len

* @return

*/

public static String getRanEN(int len) {

String str = "";

for (int i = 0; i < len; i++) {

str = str + (char) (Math.random() * 26 + 'a');

}

return str;

}

/**

* 产生一个0-num之间的数字,不保证位数.如果想取负数,请在方法前加 -

* @param num

* @return

*/

public static int getRanInt(int num){

return ThreadLocalRandom.current().nextInt(num);

}

/**

* 产生一个0-num之间的数字,且保证位数为length,如果想取负数,请在方法前加 -

* @param num

* @param length

* @return

*/

public static int getRanInt(int num,int length){

int newInt = getRanInt(num);

int olen = Integer.toString(newInt).length();

while(olen < length){

newInt = getRanInt(num);

olen = Integer.toString(newInt).length();

}

return newInt;

}

/**

* 随机产生一个小于size的float数据,如size=1000,则可能返回:291.58676,如果想取负数,请在方法前加 -

* @param size

* @return

*/

public static float getRanFloat(int size){

return ThreadLocalRandom.current().nextFloat()*size;

}

/**

* 随机产生一个小于size的double数据,如size=1000,则可能返回:901.3634319184971.如果想取负数,请在方法前加 -

* @param size

* @return

*/

public static double getRanDouble(int size){

return ThreadLocalRandom.current().nextDouble()*size;

}

/**

* 产生一个随机的long数据.如果想取负数,请在方法前加 -

* @return

*/

public static long getRanLong(){

return ThreadLocalRandom.current().nextLong();

}

/**

* 在给定种子的列表中随机产生指定长度的字符串,如种子为:String oos = {"a","b","1","2"};产生随机字符时,从oos中获取

* @param len

* @param seed

* @return

*/

public static String getRanString(int len,String[] seed){

StringBuilder result = new StringBuilder();

for(int i=0;i

int index = ThreadLocalRandom.current().nextInt(seed.length);

result.append(seed[index]);

}

return result.toString();

}

}

java自动随机字符_java随机字符生成工具相关推荐

  1. java 图形校验_java图形验证码生成工具类 web页面校验验证码

    java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...

  2. java编译生成哪些文件_java编译后生成什么文件?生成的文件包括什么?

    在大家编译完java程序的时候,都是会生成一个文件的,作为java新手不清楚java编译后生成什么文件?那么今天我们就给大家讲解一下这方面的内容,大家可以参考下文哦! java文件编译过后会生成一个c ...

  3. java自动推断类型_Java 7的类型推断

    java自动推断类型 每个优秀的程序员都喜欢编写简洁但有效且经过优化的代码. 类型推断是JDK 7中引入的一种方法,它肯定会为您带来更少键入的好处. 您以以下方式使用Java代码已有很长时间了. 但是 ...

  4. java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java

    原文:仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java 源代码下载地址:http://www.zuidaima.com/share/1550463378934784.htm ...

  5. java 接口文档工具_一款Java基于注释的接口文档生成工具

    一. 痛点 你还在手动维护接口文档嘛,花一个下午不停的复制粘贴代码里面的注释 接口字段变动,还得去更新文档,更新不及时导致文档不同步 或者你使用了swagger之类的基于注解,依靠运行时的文档工具,看 ...

  6. java生成随机邮箱_Java随机生成姓名、邮箱、手机号码

    /**** * * Project Name:recruit-helper-util * 随机数生成工具类,主要包括 * 中文姓名,性别,Email,手机号,住址 *@ClassName: Rando ...

  7. java处理中文字符_Java中文字符处理的四大迷题

    虽然计算机对英文字符的支持非常不错,我们也恨不得写的程序只会处理英文的数据,但是昨为中国人,无可避免地要处理一些中文字符.当很简单的一件事情,遇到了中文,一切就不同了!本文就会讲述实际生产环境中遇到的 ...

  8. java四则出题判分_java 随机出题四则运算

    我的github地址:https://github.com/kdaysl/fshost/blob/master/mar.java 一.需求分析具体要求:任何编程语言都可以,命令行程序接受一个数字输入, ...

  9. java随机姓名_Java随机产生中文昵称

    有时候我们注册一个网站第一次登陆系统会产生一个随机昵称供用户选择,在项目测试阶段遇到了这个问题,因为注册时没有让用户填写昵称,于是找了两种产生随机中文昵称的方法: 代码如下 package com.u ...

最新文章

  1. jQuery zTree几种常用的使用方式
  2. isInfoEnabled究竟多有用?
  3. vscode快捷替换json格式
  4. php xampp bug,PHP网站访问慢的处理方法
  5. (王道408考研数据结构)第五章树-第三节3:线索二叉树
  6. mysql where is_MySQL中条件放在where后面与放在on后面的区别
  7. 仿手环运动app的html,连接手环.html
  8. Html5游戏开发-145行代码完成一个RPG小Demo
  9. 常规投放vs. static_cast与dynamic_cast [重复]
  10. dhcp(客户端)协议使用哪个众所周知的端口号?_DHCP不详解
  11. 请画出一个抓虫系统的架构图并说明你的爬虫需要如何优化来提升性能
  12. matlab 中文件夹下图像的批处理
  13. 写一个shell 快速启动停止你的微服务吧
  14. 2021泰迪杯B题数据处理4.1
  15. 计算机软考深圳积分,2020年软考证书能为深圳积分入户加分吗?
  16. 顺丰该不该开除删库的运维工程师?
  17. html5简单幻灯片图片转换,清新简洁的HTML5幻灯片- SLIDESHOW CANVAS JQUERY
  18. Xposed 之旅 -- 让微信低版本也可以登录
  19. 为iPhone日历添加天气和农历
  20. Java学习笔记(三):流程控制

热门文章

  1. ASP.NET Core中间件(Middleware)实现WCF SOAP服务端解析
  2. ASP.NET Core 中文文档 第三章 原理(3)静态文件处理
  3. Windows之在终端打开当前目录的命令
  4. IOS学习笔记十六(NSString和NSMutableString)
  5. C语言之加入头文件<stdbool.h>可以使用true和false
  6. Android之用AccessibilityService实现红包插件
  7. Android之Android studio基本调试和快捷键
  8. Android之RxJava(一)
  9. 【C语言简单说】八:分支结构之if(1)
  10. mysql的复杂查询_mysql复杂查询