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

我的6.5作业!!!

public class CollectionsTestTwo {
/**
* 通过collections.sort()方法对String泛型进行排序
* 1、要创建一个String泛型,并且随机添加十个字符串
* @param args
*/
public void testSort1() {
String str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
Random random = new Random();
List<String> stringList = new ArrayList<String>();
for(int i =0;i<10;i++) {
//使用StringBuffer创建一个新的字符串对象
StringBuffer sb = new StringBuffer();
int stringLength = random.nextInt(10);
if(stringLength == 0) {
continue;
}else {
for(int j =0;j<stringLength;j++) {
int num = random.nextInt(str.length());//随机产生一个str的索引位置
sb.append(str.charAt(num));//将str在num位置上的值添加到sb字符串对象中
}
}
stringList.add(sb.toString());
System.out.println("将要添加字符串:" + sb.toString());
}
System.out.println("------------排序前-----------");
for(String string : stringList)
System.out.println("元素:"+string);
Collections.sort(stringList);
System.out.println("------------排序后-----------");
for(String string : stringList)
System.out.println("元素:"+string);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CollectionsTestTwo ctt = new CollectionsTestTwo();
ctt.testSort1();
}
}

https://img1.sycdn.imooc.com//5c7e283c0001455d05340759.jpg

正在回答

1 回答

看了看下,虽然可以输出十个随机字符串并排序,但是

没有完成第四个规定,那就是并没有规定是十个不一样的随机字符串。

可以在添加字符串前判断是否存在,如不存在就跳出重新循环。


具体可以参考下:

loop:

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

//使用StringBuffer创建一个新的字符串对象

StringBuffer sb = new StringBuffer();

int stringLength = random.nextInt(10);

if(stringLength == 0) {

continue;

}else {

for(int j =0;j<stringLength;j++) {

int num = random.nextInt(str.length());//随机产生一个str的索引位置

sb.append(str.charAt(num));//将str在num位置上的值添加到sb字符串对象中

}

}

//判断将要添加的字符串是否已经存在

if (stringList.contains(sb.toString())) {

continue loop;

}

stringList.add(sb.toString());

i++;

System.out.println("将要添加字符串:" + sb.toString());

}


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

举报

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

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

进入课程

我的6.5作业!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信