练习代码显示乱码问题,用随机数取ASII码对应的数字不可行么?
我使用了两次随机数,一次获取字符串的长度,一次用来取ASII码对应的数字,再通过转换成char,用String类的拼贴来拼出单个字符串。
问题1:运行结果有好多乱码,需要修改默认格式么?
问题2:代码中 zfc+=p;这条是否符合语法?已知没办法char转换成String;(自检时把char转为了String)
public class CollectionsTest {
Random random=new Random();
Integer k;
String zfc=new String();
/**
* 课堂作业:利用Collections.sort()方法对泛型为String的List进行排序
* 要求:1.创建完List<String>之后,往其中添加十条随机字符串
* 2.每条字符串的长度是10以内的随机整数
* 3.每条字符串的每个字符都是随机生成的字符,字符可以重复
* 4.每条字符串不可重复
* @param args
*/
public void Exercise(){
List<String> stringList=new ArrayList<String>();
for(int i=0;i<10;i++){
do{k=random.nextInt(10);//使用random生成单个字符串的长度
//foreach循环生成k个字符,并组成字符串
for (int j=0;j<k;j++) {
char p=(char)random.nextInt(127);//根据7位ASII码生成随机的字符
String tool=String.valueOf(p);
zfc+=tool;//字符串的拼贴
}
}while(stringList.contains(zfc));
stringList.add(zfc);
System.out.println("成功添加字符串:"+zfc);
}
System.out.println("------------排序前------------");
for (String string : stringList) {
System.out.println("字符串:"+string);
}
System.out.println("------------排序后------------");
for (String string : stringList) {
System.out.println("字符串:"+string);
}
}
public static void main(String[] args) {
CollectionsTest ct=new CollectionsTest();
ct.Exercise();
}
}