题目
输入一个字符串数组,按照字母表的降序对这些字符串进行排序。
应该输入字符串数组吗??
没理解……就按照输入字符串,然后转成字符数组来操作了……
然后用BubbleSort来降序排序
然后用到了一个方法,只匹配字符串内的字母部分,其他都替换成空白。str.replaceAll(regex,replacement)
以下
import java.util.Scanner;
public class Problem40 {
// 排序
static void bubbleSort(char[] x){
int n = x.length;
int flag;
char temp;
int i,j;
for(i = n; i >=0 ; i--) {
//设置一个flag ,如果没有发生交换,说明后面已经有序,则跳出循环
flag =0;
for (j = 1; j < i ; j++) {
if(x[j-1]<x[j]){
temp = x[j-1];
x[j-1]=x[j];
x[j]=temp;
flag=1;
}
}
if(flag==0) break;
}
}
public static void main(String[] args) {
Scanner scan = new Scanner (System.in).useDelimiter("\n"); //可以输入空格
// 输入一个字符串
String a = scan.next();
scan.close();
// 字符串中只保留字母
String c = a.replaceAll("[^a-zA-Z]", "");
char[] b = c.toCharArray();
bubbleSort(b);
for (int i = 0; i <b.length ; i++) {
System.out.print(b[i]+" ");
}
}
}
结果如下: