java生成6个空字符串_Java入门第三季的6-5作业。使用两种方法生成10个长度为10以内的随机字符串...

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Random;

public class testCollection {

/**

*利用Collections.sort()方法对泛型为String的List进行排序

*1.创建完List之后,往其中添加十条随机字符串

*2.每条字符串的长度为10以内的随机整数

*3.每条字符串的每个字符都为随机生成的字符,字符可以重复

*4.每条随机字符串不可重复

*/

Random random=new Random();

public void testSort() {

List stringList=new ArrayList();

String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

for(int i=1;i<=10;i++) {//i为字符串个数

StringBuilder sb=new StringBuilder();//创建一个空的StringBuilder对象

do{

int j;//j为字符串长度

do {

j=random.nextInt(10);//生成任意的字符串长度

}while(j==0);//若字符串长度为0,则重新生成

for(int k=0;k

int l=random.nextInt(61);//l为str字符串任意位置,str共有62个,位置为0-61

sb.append(str.charAt(l));//获取str中任意位置的元素,追加到sb对象的末尾

}

}while(stringList.contains(sb));//若字符串与已生成的字符串List集合中的任一个重复,则重新生成

stringList.add(sb.toString());//将已生成的字符串StringBuilder对象转换为String对象添加到stringList中

}

System.out.println("—————————第一种方法————————");

System.out.println();

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

for (String string : stringList) {//foreach方法遍历系统自动生成的stringList中元素

System.out.println("系统自动添加字符串:"+string);

}

Collections.sort(stringList);//调用Collections.sort()方法对stringList进行排序

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

int m=0;

for (String string : stringList) {//foreach方法遍历经排序后的stringList中元素

m++;

System.out.println("排序后字符串"+m+":"+string);

}

}

public void sortTest() {

List stringList=new ArrayList();

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

StringBuilder sb=new StringBuilder();

do {

int j;

do{

j=random.nextInt(10);

}while(j==0);

int k;

for(k=0;k

int l=random.nextInt(127);//l为ASCII码表的任意码值,ASCII码表字符共有128个,码值为0-127

if((l>47&&l<58)||(l>64&&l<91 )||(l>96&&l<123)) {//数字,英文字符大、小写ASCII码值范围

sb.append((char)l);//ASCII码转换成字符串,追加到sb对象的末尾

}else {

continue;//若随意生成的码值不在数字,英文字符大、小写ASCII码值范围内,则跳出循环执行下一次

}k++;

}

}while(stringList.contains(sb));

stringList.add(sb.toString());

}

System.out.println("—————————第二种方法————————");

System.out.println();

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

for (String string : stringList) {//foreach方法遍历系统自动生成的stringList中元素

System.out.println("系统自动添加字符串:"+string);

}

Collections.sort(stringList);//调用Collections.sort()方法对stringList进行排序

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

int m=0;

for (String string : stringList) {//foreach方法遍历经排序后的stringList中元素

m++;

System.out.println("排序后字符串"+m+":"+string);

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

testCollection tc=new testCollection();

tc.testSort();

tc.sortTest();

}

}

运行结果预览:

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值