我们玩一个随机0-9组成一个8位不重复数字的字符串,产生4个这样的字符串,也是互相不重复的
package text2; import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; /* * 我们玩一个随机0-9组成一个8位不重复数字的字符串. * 产生4个这样的字符串,也是互相不重复的 */ public class Example { //1.第一种方法:产生一个字符串 public static String getRandomString() { //hashSet存储不重复的书 HashSet<Character> characters=new HashSet<Character>(); //长度为8 while(characters.size()<8) { //随机产生0-9的书 int number=(int) (Math.random()*9); char ch=(char) number; characters.add(ch); } String str=""; for(Character ch: characters) { str +=ch; } return str; } //1.第二种方法:产生一个字符串 public static String getRandStr() { //先定义一个可变数组 StringBuilder bulider=new StringBuilder(); //8位数 while(bulider.length()<8) { //产生随机数 int number=(int)(Math.random()*9); //StringBuilder中没有包含方法,可以将StringBuilder转换为String类型 if(! bulider.toString().contains(number+"")) { bulider.append(number); } } return bulider.toString(); } //2.4个不重复的数组 public static HashSet<String> getRandomStrings(){ //创建一个HashSet集合 HashSet<String> hashset=new HashSet<String>(); while(hashset.size()<4) { hashset.add(getRandomString()); } return hashset; } public static void main(String[] args) { String[] str= {"可乐","啤酒","烤鸭","炸鸡"}; Map<String,String> map=new LinkedHashMap<String,String>(); //将获取的编号和字符串对应 HashSet<String> hash=getRandomStrings(); ArrayList<String> arrayList=new ArrayList<String>(); arrayList.addAll(hash); //遍历添加字符串 for(int i=0;i<str.length;i++) { map.put(arrayList.get(i), str[i]); } //遍历输出字符串 //map.keySet():返回一个有健组成的set集合 //map.get(Key k):返回一个指定健的值 for(String string:map.keySet()) { System.out.println(map.get(string)); } } }