描述:
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入:
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出:
对于每组输入数据,输出一行,字符中间用一个空格分开。
这个题实际上就是要实现一个排序,这里使用的是冒泡排序法。代码如下:
import java.util.*;
/**
* ASCII码排序
* @author sdu20
*
*/
public class ASCIIsort {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
try{
String str = in.nextLine();
int num = Integer.valueOf(str).intValue();//为了防止第一行末尾的回车的影响
char[][] results = new char[num][];
for(int i = 0;i<num;i++){
str = in.nextLine();
results[i] = sort(str);
}
for(int i=0;i<num;i++){
for(int j = 0;j<results[i].length;j++)
System.out.print(results[i][j]+" ");
System.out.println();
}
}catch(Exception e){
e.printStackTrace();
}
}
public static char[] sort(String str){
if(str.isEmpty())
return null;
char[] chars = new char[str.length()];
for(int i = 0;i<str.length();i++){
chars[i] = str.charAt(i);
}
for(int i = chars.length-1;i>=0;i--){
char max = chars[0];
int maxIndex = 0;
for(int j = 0;j<=i;j++){
if(chars[j]>max){
max = chars[j];
maxIndex = j;
}
}
if(maxIndex != i){
char x = chars[i];
chars[i] = chars[maxIndex];
chars[maxIndex] = x;
}
}
return chars;
}
}
运行结果截图如下: