要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10;
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;的更多相关文章
- 10,随机等概率的输出m个不重复的数
今天看到一段代码,可以从0.....n-1中随机等概率的输出m个不重复的数(n远远大于m).遂记录下来. 首先,产生随机数,不免要用到srand,rand函数.先简单介绍下两个函数. 1,void s ...
- 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。
给定两个字符串 s 和 t,它们只包含小写字母.字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母.请找出在 t 中被添加的字母. 示例: 输入: s = "abcd" ...
- Day_12【集合】扩展案例3_产生10个长度为10,不能重复,由数字0-9,小写字母和大写字母组成的字符串
分析以下需求,并用代码实现 1.产生10个1-20之间的随机数要求随机数不能重复 2.产生10个长度为10的不能重复的字符串(里面只能出现大写字母.小写字母.0-9的数字),并遍历打印输出 代码 pa ...
- Linux c字符串中不可打印字符转换成16进制
本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...
- std::string的Copy-on-Write:不如想象中美好(VC不使用这种方式,而使用对小字符串更友好的SSO实现)
Copy-on-write(以下简称COW)是一种很重要的优化手段.它的核心思想是懒惰处理多个实体的资源请求,在多个实体之间共享某些资源,直到有实体需要对资源进行修改时,才真正为该实体分配私有的资源. ...
- 以php中的自增自自减运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据
// 环境 // // php版本 // PHP 7.0.33-0+deb9u1 (cli) (built: Dec 7 2018 11:36:49) ( NTS ) // Copyright (c) ...
- oracle中一个字符串包含另一个字符串中的所有字符
oracle中一个字符串包含另一个字符串中的所有字符 --解决监理报告中所勾选的标段信息,与该用户所管理的标段字符串不匹配的问题. select * from a where instr(a,b)&g ...
- JPasswordField 中得到的字符数组转化为字符串(密码乱码问题)
转载自:http://blog.csdn.net/skl_tz/article/details/9009805 JPasswordField 用作密码的输入框,似乎很方便,但是,为了得到输入的内容,一 ...
- 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */
namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...
随机推荐
- mysql having和where的区别
having子句与where子句一样,都是用于条件判断的. 区别1 where是判断数据从磁盘读入内存的时候 having是判断分组统计之前的所有条件 区别原理 区别2 having子句中可以使用字段 ...
- ArcGIS JavaScript开发过程中,底图产生拼接缝问题
ArcGIS JS开发过程中,地图产生了拼接缝 上图调用的是天地图,确认原地图服务是没有这种缝隙的. 其他人电脑上测试,发现没有此问题. 纠结了半天,群里问了大神,大神说是浏览器设置了缩放.... 取 ...
- Python自学知识点----Day03
cd指令说明 1).作用:切换工作目录. 2). 命令(注意空格) 含义 cd ~===cd 回到家目录 cd . ...
- 使用docker搭建centos虚拟机
网上有很多安装linux的,这里不记录; windows安装docker 转自:https://www.cnblogs.com/samwu/p/10360943.html(windows是家庭版的) ...
- 【TensorFlow使用教程】1 环境搭建
一.TensorFlow主要依赖包——Protocol Buffer & Bazel 1. Protocol Buffer 首先要弄清三个概念: 结构化数据:指拥有多种属性的数据,例如用户信息 ...
- Node.js 开发
Node.js不必介绍,已经太火爆了.简单说是用Javascript开发Web服务端,基于Google V8引擎,单线程.不多说从零开始Windows平台下的Node.js的开发之旅. 环境工具为先 ...
- [dev][go] 入门Golang都需要了解什么
一 什么是Golang 首先要了解Golang是什么. Golang是一门计算机编程语言:可以编译成机器码的像python一样支持各种特性的高级语言. 由Google发明,发明人之一是K,就是C语言的 ...
- CListCtrl颜色设置
动态改变listctrl 单元格背景及文字颜色 m_listshow.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//插入列 m_listsh ...
- vue中用ajax上传文件
直接上代码 <input class="file-btn" type="file" @change="uploadCompany($event) ...
- 提取一个txt 文档中含指定字符串的所有行
将一个txt 文档中含指定字符串内容的所有行提取出来并保存至新的txt文档中 例如,要提取 1.txt 中所有包含”aaa” 的行的内容 只需在此文件夹中新建一个bat文件,输入以下代码,双击运行,便 ...