java中的接口是类吗
332
2023-04-22
Java 生成随机字符串数组的实例详解
java 生成随机字符串数组的实例详解
利用Collections.sort()方法对泛型为String的List 进行排序。具体要求:
1.创建完List
2.每条字符串的长度为10以内的随机整数
3.每条字符串的每个字符都为随机生成的字符,字符可以重叠
4.每条随机字符串不可重复
将涉及到的知识有: String、StringBuffer、ListArray、泛型、Collections.sort、foreach、Random等相关知识,算是 在JAVA 学习过程中一个比较好的的实践。
1. 随机生成一个字符
1.1 先将所有的字母和0-9的数字存放于一个字符串中,以便后续使用。
String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStT
uUvVwWxXyYzZ0123456789";
1.2 因为要满足随机性,所以创建一个 Random 对象,利用其中的 nextInt(str.length) 方法生成一个 0 — str.length 的随机数。
Random random = new Random();
int index = random.nextInt(str.length());
1.3 再将上述生成的随机数作为 str 字符串的索引取出相应的字符,及随机生成了一个字符
char c = str.charAt(index);
2. 生成一条长度为10以内的随机字符串
2.1 因为是10以内且满足随机性,所以此处使用 Math.random() 函数,其返回值为随机 0.0 - 1.0 的 Double 类型的数
StringBuffer stringBuffer = new StringBuffer();
//确定字符串长度
int stringLength = (int) (Math.random()*10);
2.2 现在字符串的长度可以确认,也实现了生成随机的字符,再利用 for 循环就可以生成一条长度为10以内的随机字符串
for (int j = 0; j < stringLength; j++) {
int index = random.nextInt(str.length());
char c = str.charAt(index);
stringBuffer.append(c);
}
//将StringBuffer转换为String类型的字符串
String string = stringBuffer.toString();
3. 生成10条随机字符串
3.1 经过上述的两个步骤,再在外部嵌套一个 for 循环就可以生成 10 条随机字符串
4. 创建一个 ListArray
4.1 创建一个 String 类型集合,该步奏应该和步奏3同步完成
List
4.2 将每次生成的一条字符串添加到集合中,注意利用集合的 Contains() 方法判断集合中之前是否已存在相同的字符串(虽然概率很小)。
//判断当前的list容器中是否已有刚生成的字符串,满足每条字符串不可重复性
if(!(listString.contains(stringBuffer.toString()))){
listString.add(stringBuffer.toString());
}else {
//i-- 如果不满足则重新生成
i--;
}
5 最后对集合排序
5.1 调用 Collections.sort() 方法对集合排序,其排序的规则如下:
从左向右原则,且0-9
数字优先原则,且A-Z
字母大写优先原则,且a-z
总的代码
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class RandomString {
public static void main(String[] args) {
List
System.out.println("------随机生成的10条字符串-------");
for (String string : strList) {
System.out.println(string);
}
System.out.println("------------排序后------------");
Collections.sort(strList);
for (String string : strList) {
System.out.println(string);
}
}
public static List
//将所有的大小写字母和0-9数字存入字符串中
String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
Random random = new Random();
List
String strArray[ ] = new String[10];
//生成10条长度为1-10的随机字符串
for (int i = 0; i < 10; i++) {
StringBuffer stringBuffer = new StringBuffer();
//确定字符串长度
int stringLength = (int) (Math.random()*10);
for (int j = 0; j < stringLength; j++) {
//先随机生成初始定义的字符串 str 的某个索引,以获取相应的字符
int index = random.nextInt(str.length());
char c = str.charAt(index);
stringBuffer.append(c);
}
//判断当前的list容器中是否已有刚生成的字符串,满足每条字符串不可重复性
if (!(listString.contains(stringBuffer.toString()))) {
listString.add(stringBuffer.toString());
}else {
i--;
}
}
return listString;
}
}
输出答案不唯一
以上就是Java 生成随机字符串数组的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~