为了账号安全,请及时绑定邮箱和手机立即绑定

//仅供参考,复制粘贴对你没一点好处。


/** 3.对String泛型的List进行排序

* 创建一个String泛型的List,添加十条随机的String元素

* 每条字符串的长度为10以内的随机整数

* 每条字符串的每个字符都为随机生成的字符,字符可以重复

* 每条随机字符串不可重复

*/

public void testStringSort() {

int number = 0;

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

// 定义一个字符串保存,1-9,A-Z,a-z.

String string1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstyvwxyz";

Random rd = new Random();

for (int i = 0; i < 10; i++) {

//用来保存每条字符串 循环十次

String st2 = new String();

for (int x = 0; x < rd.nextInt(10) + 1; x++) {

int k = 0;

do {

//随机获取string1字符串长度之内的int型数字

k = rd.nextInt(string1.length());

//通过字符串的charAt方法取得随机数k所对应的下标的字符,并且加上"",转换为字符串st2,

st2 += string1.charAt(k)+"";

//添加contains()方法进行判断listsort中是否包含该字符串

} while (listsort.contains(st2));

}

System.out.println("将要添加的元素:" + st2);

listsort.add(st2);

}

System.out.println("————————————排序前————————");

for (String string : listsort) {

System.out.println("第" + (number + 1) + "条字符串:" + string);

number++;

}

Collections.sort(listsort);

number = 0;

System.out.println("————————————排序后————————");

for (String string : listsort) {

System.out.println("第" + (number + 1) + "条字符串:" + string);

number++;

}

}

//仅供参考,复制粘贴对你没一点好处。


正在回答

2 回答

运行是没有问题的,但是有时会出现生成了空字符串的现象,请问是为什么?

如下:

成功添加字符串:dHh

成功添加字符串:54

成功添加字符串:llPn79BN

成功添加字符串:

成功添加字符串:xUMCX

成功添加字符串:h

成功添加字符串:E

成功添加字符串:D3jPaDdH

成功添加字符串:gwSrek

成功添加字符串:

----------排序前-----------

字符串为:dHh

字符串为:54

字符串为:llPn79BN

字符串为:

字符串为:xUMCX

字符串为:h

字符串为:E

字符串为:D3jPaDdH

字符串为:gwSrek

字符串为:

----------排序后-----------

字符串为:

字符串为:

字符串为:54

字符串为:D3jPaDdH

字符串为:E

字符串为:dHh

字符串为:gwSrek

字符串为:h

字符串为:llPn79BN

字符串为:xUMCX



0 回复 有任何疑惑可以回复我~
#1

mr1024 提问者

x < rd.nextInt(10) + 1,你加一了吗
2015-12-01 回复 有任何疑惑可以回复我~

有一个潜在问题就是,用来保存每条字符串的对象都是String    每次在string1中取得一个字符之后再加到st2上去,实际上是在内存中又生成了一个String 对面空间  


这样代码的问题就在于 ,如果要生成多条字符串的时候  要占用太多系统内存  造成资源浪费

0 回复 有任何疑惑可以回复我~
#1

mr1024 提问者

是哦,可以考虑用StringBuilder
2015-11-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409774    人
  • 解答问题       4546    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

//仅供参考,复制粘贴对你没一点好处。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号