java如何生成不重复8位String类型字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何生成不重复8位String类型字符串?相关的知识,希望对你有一定的参考价值。

如何用
String[] a = "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K",
"L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i",
"j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u",
"v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6",
"7", "8", "9" ;
String[] b = ;
这两个生成不重复的字符窜???

参考技术A 没有什么特别好的办法
组成有 62个字符
那你每次就取 随机数x 0~62范围 对应a[x]
取8次组成一个字符串
存放在 hashmap中

直到hashmap中的个数满足要求 就停止
参考技术B 使用uuid 将中间的-换掉就行了追问

只要10位,= =你能保证这10位不重复吗

参考技术C 描述不清楚 不明白你要做什么追问

就是生成 不重复的8位大小写和数字的字符串。= =

追答

sirouszlh 说的有道理,也可以把hashmap换成hashSet,可以自动去重复

Java连载81-枚举类型,生成五个不重复的随机数,集合简介

一、枚举类型

1.枚举类型的格式就是enum+枚举类型的名称,可见下面的例子。

 

package com.bjpowernode.java_learning;

?

public class D81_1_ {

  public static void main(String[] args) {

    /**

     * 需求:定义一个方法,该方法的作用是计算两个int类型数据的商

     * 如果计算成功则该方法返回1,如果执行失败则该方法返回0

     *

     * 程序执行成功,但是该程序存在风险,分析:存在什么风险?

     *

     * 程序中的问题在编译阶段解决的,绝对不会放在运行期解决。所以以下程序可以引入枚举类型

     */

    int a = 10;

    int b = 0;

    Result retValue = divide(a,b);

    if(retValue==Result.SUCCESS) {

      System.out.println("成功");

    }else if (retValue==Result.FALL) {

      System.out.println("失败");

    }

  }

  public static Result divide(int a,int b) {

    try {

      int c = a/b;

    }catch(Exception e) {

//      return 0;

      return Result.FALL;

    }

//    return 1;

    return Result.SUCCESS;

  }

}

?

 

//定义一个枚举类型

enum Result{

  //成功和失败

  //规范要求:大写

  SUCCESS,FALL //有限的

 

}

//四季

enum Season{

  SPRING,SUMMER,AUTUMN,WINTER

}

 

技术图片

二、生成五个不重复的随机数

 

package com.bjpowernode.java_learning;

import java.util.Random;

?

public class D81_2_FiveNonredundantNumber {

  public static void main(String[] args) {

    /**

     * 生成五个不重复的随机数

     */

    Random r = new Random();

   

    int[] a = new int[5];

    int index = 0;

    while(index<5) {

      int temp = r.nextInt(6);

      if(temp!=0 && !contains(a,temp)) {

        a[index++] = temp;

        System.out.println(temp);

      }else {

        System.out.println("重复了");

      }

    }

   

  }

  public static boolean contains(int[] a,int temp) {

    for(int i=0;i<a.length;i++) {

      if(a[i]==temp) {

        return true;

      }

    }

    return false;

  }

}

技术图片

三、 主要集合概述

1.Java集合中主要有三种重要的类型:

(1)List:是一个有序集合,可以放重复的数据;

(2)Set:是一个无序集合,不允许重复的数据;

(3)Map:是一个无序集合,集合中包含一个键对象,一个值对象,键对象不允许重复,值对象可以是重复的(例如:身份证号--姓名)

注意点:集合只能存储对象类型(Object,Integer,Long.......),不能存储基本数据类型(int,boolean......)?

四、源码:                                   

D81_1_EnumerationExample.java

D81_2_FiveNonredundantNumber.java

D81_3_UMLProgrammeSet.java

https://github.com/ruigege66/Java/blob/master/D81_1_EnumerationExample.java

https://github.com/ruigege66/Java/blob/master/D81_2_FiveNonredundantNumber.java

https://github.com/ruigege66/Java/blob/master/D81_3_UMLProgrammeSet.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

技术图片

以上是关于java如何生成不重复8位String类型字符串?的主要内容,如果未能解决你的问题,请参考以下文章

C#如何生成随机不重复的数字

Java变量

Java生成8位随机邀请码,不重复

SQLServer如何快速生成100万条不重复的随机8位数字

java自学之路-day02

java 生成不重复字符串