Java 生成随机字符串数组的实例详解

2025-05-29 0 40

Java 生成随机字符串数组的实例详解

利用Collections.sort()方法对泛型为String的List 进行排序。具体要求:

1.创建完List<String>之后,往其中添加十条随机字符串
2.每条字符串的长度为10以内的随机整数
3.每条字符串的每个字符都为随机生成的字符,字符可以重叠
4.每条随机字符串不可重复

将涉及到的知识有: String、StringBuffer、ListArray、泛型、Collections.sort、foreach、Random等相关知识,算是 在JAVA 学习过程中一个比较好的的实践。

1. 随机生成一个字符

1.1 先将所有的字母和0-9的数字存放于一个字符串中,以便后续使用。

?

1

2
String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStT

uUvVwWxXyYzZ0123456789";

1.2 因为要满足随机性,所以创建一个 Random 对象,利用其中的 nextInt(str.length) 方法生成一个 0 — str.length 的随机数。

?

1

2
Random random = new Random();

int index = random.nextInt(str.length());

1.3 再将上述生成的随机数作为 str 字符串的索引取出相应的字符,及随机生成了一个字符

?

1
char c = str.charAt(index);

2. 生成一条长度为10以内的随机字符串

2.1 因为是10以内且满足随机性,所以此处使用 Math.random() 函数,其返回值为随机 0.0 – 1.0 的 Double 类型的数

?

1

2

3
StringBuffer stringBuffer = new StringBuffer();

//确定字符串长度

int stringLength = (int) (Math.random()*10);

2.2 现在字符串的长度可以确认,也实现了生成随机的字符,再利用 for 循环就可以生成一条长度为10以内的随机字符串

?

1

2

3

4

5

6

7
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<String> 集合储存着10条随机字符串

4.1 创建一个 String 类型集合,该步奏应该和步奏3同步完成

?

1
List<String> listString = new ArrayList<String>();

4.2 将每次生成的一条字符串添加到集合中,注意利用集合的 Contains() 方法判断集合中之前是否已存在相同的字符串(虽然概率很小)。

?

1

2

3

4

5

6

7
//判断当前的list容器中是否已有刚生成的字符串,满足每条字符串不可重复性

if(!(listString.contains(stringBuffer.toString()))){

listString.add(stringBuffer.toString());

}else {

//i-- 如果不满足则重新生成

i--;

}

5 最后对集合排序

5.1 调用 Collections.sort() 方法对集合排序,其排序的规则如下:

  • 从左向右原则,且0-9
  • 数字优先原则,且A-Z
  • 字母大写优先原则,且a-z

总的代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48
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<String> strList = randomString();

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<String> randomString(){

//将所有的大小写字母和0-9数字存入字符串中

String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";

Random random = new Random();

List<String> listString = new ArrayList<String>();

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 生成随机字符串数组的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://www.jianshu.com/p/61db371f1635

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java 生成随机字符串数组的实例详解 https://www.kuaiidc.com/115382.html

相关文章

发表评论
暂无评论