我打了两个代码 一个是之前好久打的 一个是最近打的 最近打的这个代码运行不了 我不知道为什么
完成功能: 生成N个随机字符串 生成后排序
可以运行的版本:
此版本中 字符串长度是随机的 个数是已定的
public void sorttext3(){
List<String> a = new ArrayList<String>();
//String[] b = new String[10];
String st = "abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "0123456789";
Random c = new Random();
int i=0;
for(int z=0;z<10;z++){
StringBuffer sb = new StringBuffer();
do{
int j=c.nextInt(10)+1;
for(;i<j;i++){
//Random d = new Random(62);
int num = c.nextInt(st.length());
sb.append(st.charAt(num));
}
}while(a.contains(sb.toString()));
a.add(sb.toString());
}
System.out.println("···········排序前");
for (String string : a) {
System.out.println("元素"+a);
}
Collections.sort(a);
System.out.println("``````````排序后");
for (String string : a) {
System.out.println("元素 "+a);
}
}
不可运行版本 :
此版本中 字符串的长度是用户定义的 字符串的个数也是用户定义的
public class RandomString {
public void TestRomString(){
List<String> rs = new ArrayList<String>();
String c = "abcdefghiglmlnopqrsgnuwysz"
+ "ABCDEFGHIJKLMNOPQRSGWVWYS"
+ "Z0123456789";
Random r = new Random();
Scanner console = new Scanner(System.in);
System.out.println("请定义字符串的个数");
int a = console.nextInt();
System.out.println("请输入每个字符串的长度 ");
int b = console.nextInt();
// StringBuffer sb = new StringBuffer();
for(int i = 0 ; i<a; i++){
StringBuffer sb = new StringBuffer();
for(int j=0;i<b;j++){
int num = r.nextInt(c.length());
sb.append(c.charAt(num));
}
String e = sb.toString();
rs.add(e);
if(rs.contains(e)){
i--;
continue;
}
}
System.out.println("排序前");
for (String string : rs) {
System.out.println(string);
}
System.out.println("排序后");
Collections.sort(rs);
for (String string : rs) {
System.out.println(string);
}
}
public static void main(String[] args) {
RandomString rst = new RandomString();
rst.TestRomString();
}
}
不可运行版本 加粗加下划线部分有错误 导致栈内存都崩溃了 = =
慕粉4075985
相关分类