这是一个黑马面试题,当时紧张没做出来,哎,现在做出来了,请大家指教。
/*编写一个类,其中包含两个排序的方法sort(), 参数不同,当键盘录入的是一串整数,就按照从小到大 的顺序输出,如果键盘录入的是一个字符串,就将字符串反序输出。*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//接受键盘输入
Scanner scanner = new Scanner(System.in);
//判断输入的内容
if (scanner.hasNextInt()) {
int a=scanner.nextInt();//输入的是整数,则调用sort方法,从小到大排列
sort(a);
} else {
String str=scanner.next();//输入的字符串,则调用sort方法,反序输出
sort(str);
}
}
//整数排序
public static void sort(int num){
//将整数转化为char数组
char[] ch=Integer.toString(num).toCharArray();
//定义一个整数数组
int [] chInt=new int[ch.length];
//遍历char数组,并转换元素为整数,存入整数数组
for(int a=0;a<ch.length;a++){
String s=String.valueOf(ch[a]);//char转String
chInt[a]=Integer.parseInt(s);//String转int,存入整数数组
}
//遍历整数数组,进行排序
for(int i=0;i<chInt.length-1;i++){
for(int j=i+1;j<chInt.length;j++){
if(chInt[j]<=chInt[i]){
int temp=chInt[i];
chInt[i]=chInt[j];
chInt[j]=temp;
}
}
}
//输出结果
for(int b:chInt){
System.out.print(b+",");
}
}
//字符串反序输出
public static void sort(String str){
//转换字符串为char数组
char[] chr=str.toCharArray();
//定义起始下标和结束下标
int stat=0;
int end=chr.length-1;
//遍历数组,反序排列
for(int i=0;i<chr.length;i++){
if(stat<end){
char temp=chr[stat];
chr[stat]=chr[end];
chr[end]=temp;
stat++;
end--;
}
}
//输出结果
System.out.println(new String(chr));
}
|
|