博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成随机的数字和字母组合
阅读量:5308 次
发布时间:2019-06-14

本文共 3051 字,大约阅读时间需要 10 分钟。

import java.util.Random;public class StringUtil {    private static final int Num_WORD = 1;//数字    private static final int STR_WORD = 2;//字母    private static final int STR_NUM_WORD = 3;//字母数字    private static final int MIX_WORD = 4;//字母数字符号    /**     * 获取随机字符串     * @param style  输出格式  1纯数字,2纯字符串,3字符数字组合,4字符数字符号组合。     * @param length 输出长度     * */    public static String getRandomStr(int style, int length) {         if (style == Num_WORD) {                return getNumRandom(length);            } else if (style == STR_WORD) {                return getStrRandom(length);            } else if (style == STR_NUM_WORD) {                return getStrNumRandom(length);            }else if (style == MIX_WORD) {                return getMixRandom(length);            }else{                 return getMixRandom(length);             }         }    //纯数字    private static String getNumRandom(int length) {        int[] array = new int[length];        StringBuilder str = new StringBuilder();        for (int i = 0; i < length; i++) {            array[i] = (int) (Math.random() * 10);            str.append(array[i]);        }        return str.toString();    }    //纯字母    private static String getStrRandom(int length) {        int[] array = new int[length];        char[] chars = new char[length];        StringBuilder str = new StringBuilder();        for (int i = 0; i < length; i++) {            while (true) {                array[i] = (int) (Math.random() * 1000);                if ((array[i] > 64 && array[i] < 91)                        || (array[i] > 96 && array[i] < 123))                    break;            }            chars[i] = (char) array[i];            str.append(chars[i]);        }        return str.toString();    }    //字母数字组合    public static String getStrNumRandom(Integer length) {          StringBuilder str = new StringBuilder();        Random random = new Random();          for (int i = 0; i < length; i++) {              boolean b = random.nextBoolean();              if (b) { // 字符串                  int choice = random.nextBoolean() ? 65 : 97; //取得65大写字母还是97小写字母                  str.append((char) (choice + random.nextInt(26)));// 取得大写字母              } else { // 数字                  str.append(random.nextInt(10));              }          }          return str.toString();      }          //字母数字符号组合    private static String getMixRandom(int length) {        int[] array = new int[length];        char[] chars = new char[length];        StringBuilder str = new StringBuilder();        for (int i = 0; i < length; i++) {            while (true) {                array[i] = (int) (Math.random() * 1000);                if (array[i] > 47 && array[i] < 91 || (array[i] > 96 && array[i] < 123))                    break;            }            chars[i] = (char) array[i];            str.append(chars[i]);        }        return str.toString();    }        public static void main(String[] args) {        System.out.println(StringUtil.getRandomStr(4, 10));    }}

 

转载于:https://www.cnblogs.com/fireinwater/p/6951825.html

你可能感兴趣的文章
[C++]红色波浪线是什么意思
查看>>
如何保存或读取数据(到android的data目录)利用context获取常见目录可优化代码...
查看>>
使用JavaStcript对数组元素去重的方法
查看>>
LaTeX 中换段落
查看>>
Summary--1--1011
查看>>
JVM的反射实现
查看>>
JS保留小数点,四舍五入
查看>>
6.20-Param reconfig讨论
查看>>
Golang(七)golang.org/x/time/rate 实现频率限制
查看>>
bzoj2565: 最长双回文串 pam
查看>>
洛谷P2617 Dynamic Rankings
查看>>
POJ 2125 Destroying The Graph
查看>>
POJ 3668 Game of Lines
查看>>
C语言——指针型函数(返回指针值得函数)
查看>>
GIT问题(一)——push冲突
查看>>
使用AutoMapper
查看>>
powershell小工具
查看>>
spring-data-elasticsearch使用笔记
查看>>
《大话设计模式》---第一章 简单工厂模式
查看>>
asp.net 验证正则表达式
查看>>