猿问

JAVA关于StringBuffer中问题

我打了两个代码 一个是之前好久打的  一个是最近打的  最近打的这个代码运行不了 我不知道为什么

完成功能:   生成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();
    }
}



不可运行版本   加粗加下划线部分有错误  导致栈内存都崩溃了 = =

qq_什么亡魂溺海没有跳海实在_03283094
浏览 1018回答 1
1回答

慕粉4075985

     for(int j=0;i<b;j++) 结束条件错误,导致无限循环
随时随地看视频慕课网APP

相关分类

Java
我要回答