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

随机生成字符串,出现了空字符串是什么原因?

我先定义了一个字符串用来存放0-9,A-Z,a-z字符,程序和问答中各位朋友所述的一样,运行是没有问题的,但是有时会出现生成了空字符串的现象,请问是为什么?

如下:

成功添加字符串:dHh

成功添加字符串:54

成功添加字符串:llPn79BN

成功添加字符串:

成功添加字符串:xUMCX

成功添加字符串:h

成功添加字符串:E

成功添加字符串:D3jPaDdH

成功添加字符串:gwSrek

成功添加字符串:

----------排序前-----------

字符串为:dHh

字符串为:54

字符串为:llPn79BN

字符串为:

字符串为:xUMCX

字符串为:h

字符串为:E

字符串为:D3jPaDdH

字符串为:gwSrek

字符串为:

----------排序后-----------

字符串为:

字符串为:

字符串为:54

字符串为:D3jPaDdH

字符串为:E

字符串为:dHh

字符串为:gwSrek

字符串为:h

字符串为:llPn79BN

字符串为:xUMCX

 

正在回答

5 回答

k=random.nextInt(10); //这里0~10以内的随机数 

//当K的值为0时 添加到sb中的字符为空 转为字符串以后自然也就是空字符串  添加到集合中输出的就是空字符串

//可以改成

k=random.nextInt(9) + 1; // 0~9以内的随机数+1 相当于1~10以内的随机数 避免了k值为0的问题



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

kmustwh 提问者

非常感谢!
2015-12-15 回复 有任何疑惑可以回复我~

k=random.nextInt(10);这个地方的k值为零时,就出现空字符, 你可以改成k =1+random.nextInt(9);

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

k=random.nextInt(10);这个地方的k值为零时,就出现空字符,你可以改成while((k=random.nextInt(10))==0);

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

贴出来代码瞅瞅,是不是截图的开始位置和结束位置一样了,导致截图了0长度的字符串。

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

这是我的方法:

public void testSort3(){

List<String> stringList =new ArrayList<String>();

Random random=new Random();

String base="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

Integer k;

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

StringBuilder sb=new StringBuilder();

do{

k=random.nextInt(10);

for(int j=0;j<k;j++){

int number=random.nextInt(base.length());

   sb.append(base.charAt(number));

}

sb.toString();

}while(stringList.contains(sb));

System.out.println("成功添加字符串:"+sb);

stringList.add(sb.toString());

}

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

for (String string1 : stringList) {

System.out.println("字符串为:"+string1);

}

Collections.sort(stringList);

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

for (String string : stringList) {

System.out.println("字符串为:"+string);

}

}


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

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

随机生成字符串,出现了空字符串是什么原因?

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