首页 >  编程教程 >  java教程 >  正文

Java如何生成随机字符串

1188

先定义一个基础字符串(即生成的每一个随机字符串里的每一个字符都要包含在这个基础字符串里面),包含字符"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"。
主要思路就是定义一个含有艺段字符串长度参数的方法生成一个随机长度的字符串,之后在构造方法里面,先用一个定义好的长度length变量用来接收随机生成的一个整型随机数,然后进行对上述生成随机字符串方法的调用,生成随机字符串方捕袭缝法的参数即为length接收的随机数,这样字符串的长度就是随机的了。

//方法一  需要包:import java.util.Random;
//生成的字符串每个位置都有可能是str中的一个字母或数字
int length = 12;
String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
StringBuilder stringBuilder = new StringBuilder();
for(int i = 0;i<length;i++){
    //random.nextInt(62)会生成一个范围在0~x(不包含X)内的任意正整数
    int num = random.nextInt(62);
    stringBuilder.append(str.charAt(num));
}
System.out.println(stringBuilder);

//方法二 org.apache.commons.lang包下有一个RandomStringUtils类,其中有一个randomAlphanumeric(int length)函数,
// 可以随机生成一个长度为length的字符串。
String string= RandomStringUtils.randomAlphanumeric(12);
System.out.println(string);
//产生5位长度的随机字符串,中文环境下是乱码
System.out.println(RandomStringUtils.random(5));
//使用指定的字符生成5位长度的随机字符串
System.out.println(RandomStringUtils.random(5, new char[]{'a','b','c','d','e','f', '1', '2', '3'}));
//生成指定长度的字母和数字的随机组合字符串
System.out.println(RandomStringUtils.randomAlphanumeric(5));
//生成随机数字字符串
System.out.println(RandomStringUtils.randomNumeric(5));
//生成随机[a-z]字符串,包含大小写
System.out.println(RandomStringUtils.randomAlphabetic(5));
//生成从ASCII 32到126组成的随机字符串
System.out.println(RandomStringUtils.randomAscii(4));

//方法三 可以指定某个位置是a-z、A-Z或是0-9
Random random1=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;i<length;i++){
    int number=random1.nextInt(3);
    long result=0;
    switch(number){
        case 0:
            //对应A-Z 参考ASCII编码表
            result=Math.round(Math.random()*25+65);
            sb.append(String.valueOf((char)result));
            break;
        case 1:
            //对应a-z 参考ASCII编码表
            result=Math.round(Math.random()*25+97);
            sb.append(String.valueOf((char)result));
            break;
        case 2:
            //对应数字
            sb.append(String.valueOf(new Random().nextInt(10)));
            break;
    }

}
System.out.println(sb);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
申明:本站内容仅代表个人观点,仅供学习参考;未经授权任何个人或组织单位不得复制、转载、摘编以及其它形式的应用! 本站文章可能使用到互联网上的资料,若对您造成困扰,请联系 kk19@foxmail.com除理 本文地址:https://www.chateach.com/it/java/917string
相关文章
  • Java字符串的替换replace()、replaceFirst()和replaceAll()

    java,字符串

    Java字符串的替换replace()、replaceFirst()和replaceAll(),如何匹配替换字符串中的内容。

    704
    • java
    • 字符串
  • linux系统下使用Vue CLI脚手架安装vue3

    Vue CLI,vue3

    linux系统下使用Vue CLI脚手架安装vue3。Vue 提供了一个官方的 CLI,为单页面应用 (SPA) 快速搭建繁杂的脚手架。它为现代前。端工作流提供了功能齐备的构建设置。

    1448
    • Vue CLI
    • vue3
  • laravel url路由中存在双斜杠(//)造成404问题

    laravel路由双斜杠

    解决在laravel框架下,网站的首页后面加上双斜杠(//),页面显示的尽然不是首页,是一个空白的页面状态码是200,或者报404错误。

    1824
    • laravel路由双斜杠
  • php获取当前时间操作

    php获取时间

    在PHP语言中我们如何获取当前时间呢?只要通过date()和time()函数组合使用实现。

    1261
    • php获取时间
  • java中的JDK、JRE、JVM三者的区别

    JDK,JRE,JVM

    java中的JDK、JRE、JVM三者的区别,JDK是 Java 语言的软件开发工具包(SDK);JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    912
    • JDK
    • JRE
    • JVM
  • 什么是css语言

    什么是css

    CSS全称为Cascading Style Sheets(层叠样式表),中文翻译为“层叠样式表”,简称CSS样式表。它是一种用来表现HTML或 XML 等文件式样的计算机语言。

    1055
    • 什么是css
  • 原生js 复制内容到剪切板代码实现

    js 复制内容,剪切板代

    有时候为了提升用户体验,比如在某些页面需要实现点击内容,将内容复制到剪切板,可以提升用户复制内容的操作效率;因此在实际操作中通过一定的事件触发复制功能是非常有意义的行为,下面是两种通过原生js实现复制内容到剪切板。

    1132
    • js 复制内容
    • 剪切板代
  • Java实现哈希加解密(HmacSHA1、HmacMD5、HmacSHA256、HmacSHA512)

    Java哈希加解密

    什么是Hash,Java实现哈希加解密(HmacSHA1、HmacMD5、HmacSHA256、HmacSHA512),哈希算法不可逆,不同的源数据使用同样的哈希算法,可能会产生相同的哈希值,这被称之为碰撞率(collision rate),即使是 MD5 算法,碰撞率也非常小,小到几乎可以忽略不计。大约是 1.47*10的负29次方。

    1925
    • Java哈希加解密
  • springboot网站搭建部署详细流程

    springboot

    linux环境如何搭建java框架springboot,为大家演示一种快速简单的搭建springboot的方法。由于springboot是java的众多框架之一,因此需要部署好java的运行环境,即服务器安装好jdk18以及tomcat3,注意版本的兼容性。

    1257
    • springboot
  • laravel如何封装函数全局调用

    laravel函数封装

    laravel如何封装函数,实现全局调用。我们就拿PHPAnalysis分词程序作为例子来演示下。PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便。

    1632
    • laravel函数封装
  • 原生AJAX请求实例教程

    AJAX

    如何使用原生javascript进行ajax数据请求呢?可以不重新加载整个网页通过刷新网页部分内容达到数据的更新展示。可以有效的降低对带宽的需求,提高网页的性能;Ajax有同步和异步两种实现方式。

    1084
    • AJAX
  • linux服务器如何部署java运行环境

    linux服务,部署java

    linux服务器需要运行java程序那么就需要jvm服务,同时为了方便开发维护直接安装jdk即可。对于java网站的运行则还需要安装Tomcat。下面就以在centos服务器上演示一下java运行环境的部署。

    1045
    • linux服务
    • 部署java
  • vue框架简介及其优势

    vue框架,vue优势

    vue框架简介及其优势,Vue 是一套用于构建用户界面的渐进式JavaScript框架,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。。但是vue对于SEO并不是非常友好,及其解决方案。

    1559
    • vue框架
    • vue优势
  • springboot怎么返回404页面及状态码

    springboot 404页面

    我们的项目通常来讲都是一个比较大的项目,包含了各种各样的服务。如果每个服务都以不同的方式返回异常信息,这样排查的时候就会比较凌乱。如果我们定义一个标准的异常处理体系。并在所有的服务中使用。那样开发起来就可以快速定位。页面也会更加的简单和直观。

    1393
    • springboot 404页面
  • java如何切分割字符串

    java,字符串

    在我们日常工作中经常遇到截取字符串的需求,这里重点介绍两种常见的java截取字符串方法。

    813
    • java
    • 字符串
  • 如何监听客户端的网络速度及质量

    网络质量

    在实际形况中,站点及应用可以满足绝对的流畅性,但是用户的网络环境千变万化,尤其是移动端用户,这种情况情况下页面加载速度的瓶颈完全就取决于用户的网络环境。通过浏览器的 Network Information API 接口中提供的Navigator对象的connection属性,来评估用户的连接速度以及设备所处的网络类型。

    944
    • 网络质量
  • Laravel邮件发送功能的实现例子

    Laravel邮件发送

    Laravel如何发送邮件呢?Laravel邮件发送功能的实现例子,从邮箱注册配置到,laravel邮件参数配置,提供纯文本邮件和富文本邮件发送两种邮件发送实例。

    1610
    • Laravel邮件发送
  • centos系统如何修改超级管理员root用户名

    root用户名修改,centos系统

    centos系统修改超级管理员root用户名实例演示,只要简单的将超级管理员root用户修改掉,那么被暴力破解几率就会直线下降。

    1204
    • root用户名修改
    • centos系统
-- 这已经是底线了,看看别的把! --