sort内部按数字,大写字母,小写字母的优先级排序,有图有真相

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

给大佬递茶

2018-11-02 14:45

public void testSort2(){

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

Random random=new Random();

//生成十条不重复的字符串(由数字和字母组成)

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

StringBuffer str=new StringBuffer();

do{

//字符串长度为10以内的整数,nextInt()范围为[0,10),字符串长度不想设置为空就加1

int size=1+random.nextInt(10);

//随机生成字符串

for(int tempsize=0;tempsize<size;tempsize++){

int c;

do{

//随机生成0到122的数字,0到9表示数字字符,65到90表示'A'到'Z'

//97到122表示'a'到'z'

c=(int)(Math.random()*123);

}

//当生成的字符为'0'到'9'或'a'到'z'或'A'到'Z'时跳出

while(!((c>=0&&c<=9)||(c>='a'&&c<='z')||(c>='A'&&c<='Z')));

if(c>=0&&c<=9){

String s=Integer.toString(c);

str.append(s);

}

else{

char cr=(char)c;

String s=String.valueOf(cr);

str.append(s);

}

}https://img3.mukewang.com/5bdbf2720001d18502540461.jpg

}while(sb.contains(str.toString()));

//如果list没有该字符串就加入

sb.add(str.toString());

}

System.out.println("排序前的字符串list为:");

for (String string : sb) {

System.out.println(string);

}

System.out.println("排序后的字符串list为:");

Collections.sort(sb);

for (String string : sb) {

System.out.println(string);

}

}


写回答 关注

1回答

  • qq_慕桂英0425795
    2019-01-18 14:28:43

    排序应该是按照ASCII码表上的顺序进行排列的,可以在百度上搜一下ASCII码表,优先级就出来了

Java入门第三季

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

409770 学习 · 4388 问题

查看课程

相似问题