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

交作业,望指点

private void testSort3() {
    final String chooseString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    Random random = new Random();
    List<String> stringList = new ArrayList<>();
    int charNum;
    int stringLen;

    for (int j = 0; j<10; j++) {
        StringBuilder str = new StringBuilder();
        stringLen = random.nextInt(10) + 1;        // 本次字符串的长度

        do {
            for (int i = 0; i<stringLen; i++){
                charNum = random.nextInt(chooseString.length() - 1);   // 随机获取一个字符
                str.append(chooseString.charAt(charNum));                     // 组成字符串
            }
        } while (stringList.contains(str.toString()));

        stringList.add(str.toString());
    }

    for (String s : stringList) {
        System.out.println(s);
    }
    System.out.println("-------------------- 排序后 ------------------------");
    Collections.sort(stringList);
    for (String s : stringList) {
        System.out.println(s);
    }
}


正在回答

1 回答

 random.nextInt(chooseString.length() - 1);nextInt(int)本来就是生成0-int之间的值不包括int的值,就相当于0-chooseString.length() - 1,你将int的值设置为chooseString.length() - 1其实是只能随机出0-chooseString.length() - 2的值,所以你最后一个字符9不可能出现

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

举报

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

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

进入课程

交作业,望指点

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