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

课后习题

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class SortTest {

private List<String> stringList = new ArrayList<String>();

/**
* 对随机生成的十条字符串集合进行排序 该字符串有如下要求:
* 1、字符串的长度为10以为的随机整数
*  2、字符串的每个字符都是随机生成的的,可以重复
* 3、每条字符串不可重复
*
*/
public void testSort() {
// 定义一个random类来生成随机数
Random random = new Random();
for (int i = 0; i < 10; i++) {

int stringLength = 0;// 获取随机长度
int temp = 0;// 接受随机字符并转换成字母
// 创建一个缓冲器,用于得到一个随机字符串
StringBuffer buffer = new StringBuffer();

// 获得10以内的字符串长度
do {
stringLength = random.nextInt(10);
} while (stringLength == 0); // 长度不能为0

// 开始为buffer添加字符
do{
for (int j = 0; j < stringLength; j++) {
/*
* 用ascII码进行转换成A~z的字符(65~90,97~112),获取到一个字母后,添加给buffer
*/
do {
temp = random.nextInt(113);
} while (!((temp >= 65 && temp <= 90) || (temp >= 97 && temp <= 112)));
buffer.append((char) temp);

}
}while(stringList.contains(buffer.toString())); // do-while防止重复添加
// 若不重复,添加到集合中
stringList.add(buffer.toString());
}
System.out.println("---------排序前----------");
print();
Collections.sort(stringList);
System.out.println("---------排序后----------");
print();
}

// 遍历打印字符串集合
public void print() {
for (String str : stringList) {
System.out.println(str);
}

}

public static void main(String[] args) {
SortTest st = new SortTest();
st.testSort();
}
}


正在回答

1 回答

good

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

举报

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

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

进入课程

课后习题

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