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

为什么我这个会有空字符串?

package xuanke;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandString { 
  List<String> randStr = new ArrayList<>();
  
 public void getRandStr(){
  String n = "abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";  
  Random random = new Random();    
  for(int i =0;i<10;i++){ 
   int j =0;
   StringBuffer sb = new StringBuffer();   
  for(int k = random.nextInt(10);j<k;){
    // 就是这里↓ 明明处理了随机到0的情况,但是还是会出现空字符串
    if(k==0){
     continue;
    }else{
     int a = random.nextInt(n.length()-1);   
     sb.append(n.charAt(a)); 
     j++;
    }
     
    
   }
  randStr.add(sb.toString());   
  }  
 }
 
 public void forEcheGetRandStr(){
  for (String string : randStr) {
   System.out.println(string);
  }
 }
  
 public static void main(String[] args) {
  // TODO 自动生成的方法存根
  RandString rs = new RandString();
  rs.getRandStr();
  rs.forEcheGetRandStr();
 }
}


正在回答

2 回答

因为在你的循环中。你判断了K==0的情况,但是你用的是continue,仅仅只是跳过了生成字符串这一个for循环,但是你要考虑到因为k=0,这次生成字符串是空的,你必须要跳到最外层:i这一层。必须让i--,重新生成字符串。

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

慕斯3232782 提问者

非常感谢!
2017-05-18 回复 有任何疑惑可以回复我~
 random.nextInt(10)+1;
 23333不晓得这样算不算解决办法


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

举报

0/150
提交
取消

为什么我这个会有空字符串?

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