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

6-5的作业半成品输出不了东西

我写出来的东西一开始能输出些乱码或符号。

之后修改了一些BUG后现在彻底没东西了是为什么。上代码和图片http://img1.sycdn.imooc.com//5dcf7365000122a511440912.jpg

package com.imooc.collection;


import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

import java.util.Random;


public class CollectionsTest {


public void testSort3() {

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

Random random=new Random();

String str[]=new String [10];

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

do {

int n=random.nextInt(10);

char zifu[]=new char[10];

for(int a=0;a<n;a++) {

int shu=random.nextInt(62);

if(shu<26) {

zifu[a]=(char)(shu+65);

}else if(shu<52) {

zifu[a]=(char)(shu+71);

}else {

zifu[a]=(char)(shu-4);

}

}

str[i]=Arrays.toString(zifu);

zifu=null;

}while(stringList2.contains(str[i]));

}

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

for(String string:stringList2) {

System.out.println("元素:"+string);

}

Collections.sort(stringList2);

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

for(String string:stringList2) {

System.out.println("元素:"+string);

}

}


public static void main(String[] args) {

// TODO Auto-generated method stub


CollectionsTest ct=new CollectionsTest();

ct.testSort3();

}


}


正在回答

4 回答

你是来搞笑的吗?你遍历stringList2,而你new了一个List对象后,根本就没有add添加任何属性,怎么可能会有数据?

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

慕无忌8817699 提问者

是的,算法没问题。不过toString()好像带逗号的。准备往前找下不带逗号的方法
2019-11-16 回复 有任何疑惑可以回复我~
#2

慕无忌8817699 提问者

谢谢看了我代码
2019-11-16 回复 有任何疑惑可以回复我~
#3

每天奔跑的小蜗牛 回复 慕无忌8817699 提问者

你用eclipse开发,出现问题了,可以debug调试代码,我都几年没写代码了,重新回顾java基础
2019-11-16 回复 有任何疑惑可以回复我~
#4

chensq01

厉害!
2020-03-13 回复 有任何疑惑可以回复我~
查看1条回复
附运行结果图

http://img1.sycdn.imooc.com//5e05787a000135aa05220576.jpg

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

chensq01

?​
2020-03-13 回复 有任何疑惑可以回复我~
public static void main(String[] args) {
    Random random = new Random();
    List<String> list = new ArrayList<String>();
    // 定义一个包含数字字母(大小写)的长字符串用于程序进行随机生成
    String str = "951abcdefGhi753JKLMNopq46RSTuvwxY82Z";
    // 用于接收随机生成的字符串
    StringBuffer stringBuffer;
    for(int i = 0; i < 10; i++) {
        do {
            stringBuffer = new StringBuffer();
            // 通过for循环生成字符串的随机长度(+1是为了避免随机数为0导致生成空字符串)
            for(int j = 0; j < random.nextInt(9)+1; j++) {
                //从str中获取一个随机的字符追加到stringBuffer
                stringBuffer.append(str.charAt(random.nextInt(str.length())));
            }
            // 确保当前字符串在list中不存在
        }while (list.contains(stringBuffer.toString()));
        // 将生成的字符串添加到list
        list.add(stringBuffer.toString());
    }
    System.out.println("排序前:");
    list.forEach(System.out::println);
    Collections.sort(list);
    System.out.println("排序后:");
    list.forEach(System.out::println);
}


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

慕慕7440864

list.forEach(System.out::println);这种写法是java8新特性。。。
2019-12-27 回复 有任何疑惑可以回复我~

解决了。我竟然没有在其中用add把str[i]加进去

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

举报

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

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

进入课程

6-5的作业半成品输出不了东西

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