题目:
创建一个长度是8的字符串数组
使用8个长度是5的随机字符串初始化这个数组
对这个数组进行排序,按照每个字符串的首字母排序(无视大小写)
注1: 不能使用Arrays.sort() 要自己写
注2: 无视大小写,即 Axxxx 和 axxxxx 没有先后顺序
package basic_string;
public class Main {
public static String getRandomString(int len)
{
char[] cs=new char[len];
for(int i=0;i<len;i++)
{
cs[i]=(char)(int)(Math.random()*('z'-'0'+1)+'0');
//生成符合条件的有间隔的多区间随机字符时,取它们的并集区间,随机生成
//然后对生成的字符进行判断,用while循环控制生成的结果,这里经常用成if来判断
while(cs[i]>'9'&&cs[i]<'A'||cs[i]>'Z'&&cs[i]<'a')
cs[i]=(char)(int)(Math.random()*('z'-'0'+1)+'0');
}
return new String(cs);
}
public static void main(String[] args)
{
String[] strArr=new String[8];
for(int i=0;i<8;i++)
{
strArr[i]=getRandomString(5);
}
int[] sign=new int[8];
for(int i=0;i<8;i++)
{
char start=strArr[i].charAt(0);
//无视大小写的区别:方法是转成一样的
if(Character.isLetter(start))
sign[i]=Character.toUpperCase(start);
else
sign[i]=start;
}
for(int i=0;i<8;i++)
{
System.out.print(strArr[i]+' ');
}
System.out.println();
//这里用选择排序
for(int i=0;i<7;i++)
{
int min=i;
for(int j=i+1;j<8;j++)
{
if(sign[j]<sign[min])
min=j;
}
if(min!=i)
{
int t=sign[min];
String str=strArr[min];
sign[min]=sign[i];
sign[i]=t;
strArr[min]=strArr[i];
strArr[i]=str;
}
}
for(int i=0;i<8;i++)
{
System.out.print(strArr[i]+' ');
}
}
}