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

为什么返回的总不对

package Test;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Random;


    public class lianxiti {

        List <String> stringList =new ArrayList();

        Random random=new Random();

        String k;

        public void sortTest() {

            System.out.println("--------排序前----------");

            for(int i=0;i<10;i++) {

                k=stringRandom();

                stringList.add(k);

            }

            for(String string:stringList) {

                System.out.println(string);

            }

            System.out.println("--------排序后---------");

            Collections.sort(stringList);

            for(String string:stringList) {

                System.out.println(string);

            }

        }

        public String stringRandom() {

            String allString="0123456789zxcvbnmlkjhgfdsaqwertyuiopZXCVBNMKLJHGFDSAQWERTYUIOP";

            StringBuffer sb=new StringBuffer();

            for(int i=0;i<random.nextInt(11);i++){
                //62代表62个字符中随机生成
                sb.append(allString.charAt(random.nextInt(62)));

            }

            return sb.toString();

        }

        public static void main(String args[]){

            lianxiti xx=new lianxiti();
            xx.sortTest();


        }
}

代码如上,总有一个返回空值,谁能帮忙解释下,顺便看看好的代码

正在回答

2 回答

random.nextInt(11)产生的值可能为0.
for(int i=0;i<0;i++){}是不会进入循环的,所以在最后返回的字符串是空的。
我用的是下面的方法:

	
		


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

慕标407132

Random le=new Random(); int length=0; do{ length=le.nextInt(10); }while(length==0);
2018-11-27 回复 有任何疑惑可以回复我~
public int nextInt(int n)
  • 返回:

  • 下一个伪随机数,在此随机数生成器序列中 0(包括)和 n(不包括)之间均匀分布的 int 值。

以上是API文档-------------------------------------------

for(int i=0;i<;i++){
   /62代表62个字符中随机生成
   sb.append(allString.charAt(random.nextInt(62)));

}
return sb.toString();
random.nextInt(11)

如果返回0,则不进入for循环,直接就return sb.toString()了

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

慕用7075395

额,for循环里的是i< random.nextInt(11),按成剪切了
2018-11-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么返回的总不对

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