/** * 创建产生随机字符串的方法 * @param args */ public String GetRandomString(int length) { StringBuffer string=new StringBuffer(); String base="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Random r=new Random(); int k; int l=base.length();
for(int i=0;i<length;i++) { k=r.nextInt(l); string.append(base.charAt(k)); } return string.toString(); } /** * 创建String泛型List,并进行排序 * @param args */ public void TestRandomStringSort() { List<String> stringlist=new ArrayList<String>(); Random le=new Random(); String string; int length=0; for(int i=0;i<10;i++) { do{ length=le.nextInt(10); //随机产生整数作为字符串长度,长度不为0 }while(length==0); do { string=GetRandomString(length); //调用随机产生字符串的方法 }while(stringlist.contains(string)); //字符串不能重复 stringlist.add(string); } System.out.println("--------------排序前--------------"); for (String stringl : stringlist) { System.out.println("有字符串:"+stringl); } Collections.sort(stringlist); System.out.println("--------------排序后--------------"); for (String stringl : stringlist) { System.out.println("有字符串:"+stringl); } }
都是一样刷课,为何你如此优秀。。想不到想不到。。
/**
* 随机生成10个字符串:这些字符串长度可以不同,字符可以重复,但是不能有两个相同的字符串 然后对随机生成的10个字符串排序,要求输出排序前与排序后的列表序列
*/
public void StringSort2() {
Random r = new Random();
int[] pool = new int[3];
for (int j = 0; j < 10; j++) {
String str = new String();
do {
/* 长度随机 */
int lengthRand = r.nextInt(10) + 1; // 产生1-10(包括10)之间的随机数
/* 字符随机 */
for (int i = 0; i < lengthRand; i++) {
int a = (int)(r.nextDouble() * 26) + 97; // 小写字母ASCII码值序列
int b = (int)(r.nextDouble() * 26) + 65; // 大写字母ASCII码值序列
int c = r.nextInt(10); // 0-9的数字
pool[0] = a;
pool[1] = b;
pool[2] = c;
int temp = pool[r.nextInt(3)];
if (temp > 9) {
char temps = (char) temp;
str = str+temps;
} else {
str = str+temp;
}
}
} while (stringSort.contains(str));
stringSort.add(str);
System.out.println("添加了字符串"+str);
}
System.out.println("排序前:");
for (String str2:stringSort) {
System.out.println(str2);
}
Collections.sort(stringSort);
System.out.println("排序后:");
for (String str2:stringSort) {
System.out.println(str2);
}
}
public static void main(String[] args) {
CollectionsTest test = new CollectionsTest();
// test.addSort1();
// test.StringSort1();
test.StringSort2();
}
}
public class Text {
String num= "123456789qwertyuiopasdfgh"
+ "jklasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
public List<String> ch;
public Text() {
ch=new ArrayList<String>();
}
public void add() {
int n=num.length(); //字符长度
Random a=new Random();
for(int i=0;i<10;i++) {
String at="";
String aa=new String();
do{
for(int j=0;j<(a.nextInt(10)+1);j++) {
at=num.charAt(a.nextInt(n))+"";
aa+=at;
}
}while(ch.contains(aa));
ch.add(aa);
}
Collections.sort(ch);
for(String aa:ch) {
System.out.println(aa);
}
}
完美,nice
亲,同是新人,我看着你的代码没有什么问题。