为了账号安全,请及时绑定邮箱和手机立即绑定

请求指教。。。无知的小白的窝

public void testSort3(){
        List<String> stringList =new ArrayList<String>();
        String se ="zxcvbnmasdfghjklqwertyuiop1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
        StringBuilder st =new StringBuilder();
        Random random =new Random();
        int b ;
        for(int i =0;i<10;i++){
             b=random.nextInt(10)+1;
            do{
            for(int j =0;j<b;j++){
                int k =random.nextInt(se.length());
                st.append(se.charAt(k));
            }    
          }while(stringList.contains(st));
            
        }
        stringList.add(st.toString());
        System.out.println("--------排序前------");
         for (String string : stringList) {
             System.out.println("元素:"+string);
        }
          System.out.println("--------排序后------");
          Collections.sort(stringList);
          for (String string : stringList) {
            System.out.println("元素:"+string);
        }
    }

正在回答

4 回答

stringList.add(st.toString());

这行代码要写到第一个循环的最底部,不然你这个就添加一个很长的字符串对象进List

另外新建StringBuilder对象要放到do循环跟第二个for循环之间,每次获取下一个随机字符串前,都要初始化StringBuilder对象去清空,不然前面获取的字符串一直都在。

0 回复 有任何疑惑可以回复我~
 StringBuilder st =new StringBuilder();

放到第一个for循环里,作用:每生成一个字符串,清空一次。

0 回复 有任何疑惑可以回复我~

你生成一个,应该把你st里面的值清空,不然他就一直附加

0 回复 有任何疑惑可以回复我~

nice,写的很好,学了多久呀这么厉害

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请求指教。。。无知的小白的窝

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信