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

Java如何生成随机字符串

 作者:潘某人SEO
727

先定义一个基础字符串(即生成的每一个随机字符串里的每一个字符都要包含在这个基础字符串里面),包含字符"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
公众号
潘某人SEO 关注我每天学习SEO优化相关知识... 470篇原创内容
潘某SEO 公众号
申明:以上内容仅代表个人观点,仅供学习参考 本站图片来源于CC0协议或已获得VRF授权的图库站点 本文参考于互联网如有侵权,请联系 pmrseo@foxmail.com删除 本文地址:https://www.chateach.com/it/java/917string
相关文章
  • Java字符串的替换replace()、replaceFirst()和replaceAll()

    java,字符串

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

    292
    • java
    • 字符串
  • 原生AJAX请求实例教程

    AJAX

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

    747
    • AJAX
  • 原生js 复制内容到剪切板代码实现

    js 复制内容,剪切板代

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

    611
    • js 复制内容
    • 剪切板代
  • JavaScript == 与 === 区别

    == 与 === 区别

    js中==和===的区别 ==和===的区别和一些比较规则: == 在比较类型不同的变量时,会进行数据类型转化,将二者转换成数据类型相同的变量,再进行比较。对于 string、number 等基础类型,== 和 === 是有区别的 a)不同类型间比较,== 之比较 "转化成同一类型后的值" 看 "值" 是否相等,=== 如果类型不同,其结果就是不等。

    424
    • == 与 === 区别
  • html网页如何禁止打印页面

    禁止打印页面

    html网页如何禁止打印页面方式,可以禁止打印键盘的快捷键组合,但是用户可以直接鼠标操作浏览器来实现打印;所以通过css来屏蔽打印内容的输出更加的合理有效,代码如下所示。

    1038
    • 禁止打印页面
  • php如何检测mysql数据库连接正确

    mysql链接检测

    php下如何测试MYSQL数据库是否连接正常。分享一个快速检测数据库连接正确的方法,选择一张有数据的表,打印其中的一个参数。能够正常的输入数据库数据那么链接觉得没有问题。

    780
    • mysql链接检测
  • Spring Boot 如何解决跨域问题

    SpringBoot跨域

    SpringBoot 如何解决跨域问题方法,CORS全称Cross-Origin Resource Sharing,意为跨域资源共享。当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访问的那个资源就会遇到跨域问题。

    328
    • SpringBoot跨域
  • springboot怎么返回404页面及状态码

    springboot 404页面

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

    743
    • springboot 404页面
  • Laravel Module开发包安装方法

    Laravel Module

    linux环境下通过composer安装Laravel 模块化laravel-modules包,实现laravel 的模块管理器。

    910
    • Laravel Module
  • springBoot之Thymeleaf常见语法

    springBoot,Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。

    730
    • springBoot
    • Thymeleaf
  • centos系统如何修改超级管理员root用户名

    root用户名修改,centos系统

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

    674
    • root用户名修改
    • centos系统
  • MySQL数据库的介绍

    MySQL数据库的介绍

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBM

    1204
    • MySQL数据库的介绍
  • php如何匹配特定的汉字字母英文preg_match_all方法实现

    preg_match_all,php匹配字符串

    php如何从字符串匹配特点的内容,preg_match_all如何匹配字符串内容,数字、字符、字母,正则匹配,php正则表达式中preg_match_all函数的详解。

    648
    • preg_match_all
    • php匹配字符串
  • Vue 中使用 localStorage 详解

    localStorage,Vue

    什么是localStorage,与cookie的区别是什么,localStorage的生存期、数据结构、域名限制、浏览器支持;localStorage常用方法,存储数据setItem、读取数据getItem、修改数据、删除数据。

    852
    • localStorage
    • Vue
  • laravel中如何获取和设置cookie操作

    laravel ,cookie操作

    在laravel框架中 cookie的优势在于,laravel在底层会对cookie值进行加密,并且使用授权码进行签名,如果客户端修改了cookie值,那么就会失效。会比直接在php中使用cookie更加严谨安全,当然为了laravel中cookie的操作方法会与php原生的方法有所区别,虽然也可以使用php原生的方法操作,但是不推荐。

    571
    • laravel
    • cookie操作
  • HTML marquee标签如何制作滚动文字

    marquee标签,滚动文字

    在HTML页面中可以使用marquee标签实现页面文字滚动效果,给大家分享的是有关HTML代码如何制作滚动文字的内容。HTML技术中使文字滚动的方法是使用双标签marquee。

    742
    • marquee标签
    • 滚动文字
  • 如何修改重置mysql密码

    重置mysql密码

    人生处处充满着意外,忘记了mysql密码无法登陆数据库,就需要重置mysql密码,今天以linux环境下的mysql数据密码的重置。大致的原理就是设置跳过数据库密码,然后设置登陆密码,在恢复数据登陆权限。

    382
    • 重置mysql密码
  • springboot如何对html进行转义及恢复

    html转义,springboot

    Spring HtmlUtils把HTML编码转义,可将HTML标签互相转义,HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。

    1078
    • html转义
    • springboot
-- 这已经是底线了,看看别的把! --