package text1;

import java.util.ArrayList;
import java.util.HashSet; /*
* 要求产生10个随机的字符串,
* 每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,
* 每个字符串长度为10;
*/
public class Example { //先设置一个集合用来存储要随机的数据
public static ArrayList<Character> getContainer(){
//建立一个容器存放
ArrayList<Character> array=new ArrayList<Character>();
//通过for循环将可能使用的字符添加到集合中
for(char i='a';i<'z';i++) {
array.add(i);
}
for(char i='A';i<'Z';i++) {
array.add(i);
}
for(char i='0';i<'9';i++) {
array.add(i);
}
return array;
} //设置一个集合用来存储十个字符组成的字符串,十个字符必须不相同,因此使用HashSet集合
public static String getRandomString(ArrayList<Character> list) {
//使用hashset接收字符串,这样就不会产生重复
HashSet<Character> characters=new HashSet<Character>();
//字符串的长度为0
while(characters.size()<10) {
//在字符集合中随机抽取字符,先获取索引位置
int index=(int) (Math.random()*list.size());
//将指定位置的字符添加到集合中
characters.add(list.get(index));
}
//遍历hashset集合,将其转换为字符串
String string = ""; //不能使用索引,因为hashset集合是没有索引位置的
// for(int i=0;i<characters.size();i++) {
// string += characters.
// } for(Character c:characters) {
//“”加字符 转换成字符串
string += c;
}
//返回字符串
return string;
} //和第一步一样,调用N次第二步方法
public static ArrayList<String> getRandomStr(ArrayList<Character> list){
//建立hashset 集合用来接收
HashSet<String> hashset=new HashSet<String>();
while(hashset.size()<10) {
//每次讲getRandomString产生的字符串添加到集合中,参数为传进来的集合
hashset.add(getRandomString(list));
}
//将HashSet集合中的元素全部添加到list集合中
ArrayList<String> List =new ArrayList<String>();
List.addAll(hashset);
return List; } public static void main(String[] args) {
//获取字符串的组成字符
ArrayList<Character> arrayList=getContainer();
//创建字符串
ArrayList<String> list=getRandomStr(arrayList); //输出字符串
for(String str:list) {
System.out.println(str);
}
}
}

要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10;的更多相关文章

  1. 10,随机等概率的输出m个不重复的数

    今天看到一段代码,可以从0.....n-1中随机等概率的输出m个不重复的数(n远远大于m).遂记录下来. 首先,产生随机数,不免要用到srand,rand函数.先简单介绍下两个函数. 1,void s ...

  2. 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。

    给定两个字符串 s 和 t,它们只包含小写字母.字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母.请找出在 t 中被添加的字母. 示例: 输入: s = "abcd" ...

  3. Day_12【集合】扩展案例3_产生10个长度为10,不能重复,由数字0-9,小写字母和大写字母组成的字符串

    分析以下需求,并用代码实现 1.产生10个1-20之间的随机数要求随机数不能重复 2.产生10个长度为10的不能重复的字符串(里面只能出现大写字母.小写字母.0-9的数字),并遍历打印输出 代码 pa ...

  4. Linux c字符串中不可打印字符转换成16进制

    本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...

  5. std::string的Copy-on-Write:不如想象中美好(VC不使用这种方式,而使用对小字符串更友好的SSO实现)

    Copy-on-write(以下简称COW)是一种很重要的优化手段.它的核心思想是懒惰处理多个实体的资源请求,在多个实体之间共享某些资源,直到有实体需要对资源进行修改时,才真正为该实体分配私有的资源. ...

  6. 以php中的自增自自减运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据

    // 环境 // // php版本 // PHP 7.0.33-0+deb9u1 (cli) (built: Dec 7 2018 11:36:49) ( NTS ) // Copyright (c) ...

  7. oracle中一个字符串包含另一个字符串中的所有字符

    oracle中一个字符串包含另一个字符串中的所有字符 --解决监理报告中所勾选的标段信息,与该用户所管理的标段字符串不匹配的问题. select * from a where instr(a,b)&g ...

  8. JPasswordField 中得到的字符数组转化为字符串(密码乱码问题)

    转载自:http://blog.csdn.net/skl_tz/article/details/9009805 JPasswordField 用作密码的输入框,似乎很方便,但是,为了得到输入的内容,一 ...

  9. 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */

    namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...

随机推荐

  1. 什么是 js 变量提升 (Javascript Hoisting)

    Javascript是一门容易遭人误解的语言,但是它的强大毋庸置疑.个人觉得,要想深入理解Javascript语言,首先必须对其基本的概念(例如:Scope,Closure,Hoisting等)要真正 ...

  2. H5和CSS

    参考文档:https://blog.csdn.net/caseywei/article/details/81105544 *)DOCTYPE的作用 如:<!DOCTYPE html>  标 ...

  3. 让AI简单且强大:深度学习引擎OneFlow技术实践

    本文内容节选自由msup主办的第七届TOP100summit,北京一流科技有限公司首席科学家袁进辉(老师木)分享的<让AI简单且强大:深度学习引擎OneFlow背后的技术实践>实录. 北京 ...

  4. 从vue源码看Vue.set()和this.$set()

    前言 最近死磕了一段时间vue源码,想想觉得还是要输出点东西,我们先来从Vue提供的Vue.set()和this.$set()这两个api看看它内部是怎么实现的. Vue.set()和this.$se ...

  5. Django2.0.4 + websocket 实现实时通信,主动推送,聊天室及客服系统

    webSocket是一种在单个TCP连接上进行全双工通信的协议. webSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在WebSocket API中,浏览器 ...

  6. 创建一个vue项目()

    1.打开cmd,选定路径 2. vue init webpack "项目名称“ 3.在项目路径下,安装一下项目依赖 cnpm install 4.运行   cnpm run dev 5.在浏 ...

  7. pc端字体大小计算以及echart中字体大小计算

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. IP地址子网划分

    广播数据包: 要弄清为何需要划分子网,就需要了解网络传输过程中的广播概念. 经过多年的发展,交换机基本替代集线器,成为网络中主要的端终接入网络的基础设备,这也使得广播包发送数量有明显的减少,但交换机一 ...

  9. 2019春第八周作业Compile Summarize

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 在这里 我在这个课程的目标是 能更加进一步的够熟练掌握指针的用法 这个作业在那个具体方面帮助我实现目标 指针对于高阶题目的做法 参考文献与 ...

  10. go语言生成一张正弦图

    先看效果: package main import ( "image" "image/color" "image/png" "lo ...