我打了两个代码 一个是之前好久打的 一个是最近打的 最近打的这个代码运行不了 我不知道为什么完成功能: 生成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(); }}不可运行版本 加粗加下划线部分有错误 导致栈内存都崩溃了 = =
添加回答
举报
0/150
提交
取消