要求产生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个字符 ...
随机推荐
- 微信小程序里的bug---video 的play()
微信小程序hidden转换后执行play()用真机测试不会播放.在调试器里可以. 解决方法,把hidden换成wx:if. 我刚开始以为网速问题,其实不是, 具体我也不知道为什,换上wxif解决了.
- 在C++中,子类重载一个操作符时,如何调用父类被重载的操作符函数
使用static_cast运算符将子类转换为父类即可 #include <iostream> using namespace std; class Base { public: Base( ...
- Head First Python-Python简单处理文件
前面介绍了自定义格式化输出列表函数printList(),下面再介绍下格式化列表项及列表项的排序. 这里有一组列表数据,记录运动员跑步时间的,要求按照时间大小进行排序.这里每项数据记录的时间格式不一样 ...
- 魔方---java
package LMS; import java.awt.AWTException;import java.awt.Robot;import java.awt.event.InputEvent;imp ...
- HDU 3861 The King’s Problem 最小路径覆盖(强连通分量缩点+二分图最大匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3861 最小路径覆盖的一篇博客:https://blog.csdn.net/qq_39627843/ar ...
- 彻底清空SharePoint回收站(仅限IE)
1.导航到回收站页面2.F12,在控制台输入javascript:emptyItems()3.回车 4.点击确定即可 注意:这种方法可能只适用于Internet Explorer
- 代码混淆工具——Virbox Protector Standalone
VirboxProtector Standalone 加壳工具可对代码加密的技术有:代码混淆.代码虚拟化.代码加密. 代码混淆:利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但 ...
- C#基础加强(5)之装箱与拆箱
定义 装箱:将值类型赋值给 Object 类型变量时,就是装箱操作,即包装为 Object 对象. 因为值类型都是 ValueType 类型,而 ValueType 页继承了 Object(CLR 内 ...
- 动态代理处理service
/* 动态代理处理service * 1.动态代理的核心是切面编程,去除重复代码: * 2.通过反射+注解可以灵活的获取传入对象内容: * 3.通过try+catch将多个操作包裹,实现事物的原子性: ...
- 【QT】Pycharm add QT Desinger
1. https://www.cnblogs.com/dalanjing/p/6978373.html -m PyQt5.uic.pyuic $FileName$ -o $FileNameWitho ...