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

来源:6-5 应用 Collections.sort() 实现 List 排序

慕斯3232782

2017-05-07 16:48

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回答

  • qq_泪与笑_03540974
    2017-05-08 17:24:28
    已采纳

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

    慕斯3232...

    非常感谢!

    2017-05-18 23:50:43

    共 1 条回复 >

  • 慕斯3232782
    2017-05-07 17:01:06
     random.nextInt(10)+1;
     23333不晓得这样算不算解决办法


Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题