您的位置:首页 > 编程语言 > Java开发

Java南阳OJ-ASCII码排序

2017-02-03 19:49 148 查看
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while(n-->0){
String st = sc.next();
char ch[]= new char[3];
ch[0] = st.charAt(0);
ch[1] = st.charAt(1);
ch[2] = st.charAt(2);
ch = sort(ch);
for(int i=0;i<3;i++){
if(i==2){
System.out.println(ch[2]);
}else{
System.out.print(ch[i]+" ");

}

}
}

}
//插入排序
public static char[] sort(char[] ch){
int i = 1;
for (;i<3;i++){
char key = ch[i];
if(ch[i]<ch[i-1]){
int j = i-1;
while(j>=0&&key<ch[j])
j--;
for(int k=i;k>j+1;k--)
ch[k]=ch[k-1];
ch[j+1]=key;
}

}
return ch;
}

}


1.

String st = sc.next();


若改为sc.nextLine()则会报Unknown source的错误

2.

System.out.print(ch[i]+" ");


不是‘ ’,否则当成字符空格处理,和ch[i]相加,最终只输出一个字符

3.

public static char[] sort(char[] ch)


main方法是static的就只能调用static方法,所以sort()需要是static的

4.

while(j>=0&&key<ch[j])
j--;


必须要加上
j>=0
的条件,否则出现越界,而且必须是
j>=0&&key<ch[j]
不能是
key<ch[i]&&j>=0
表达式的执行是有顺序的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java