课后习题
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();
}
}
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();
}
}