首页 > 学院 > 开发设计 > 正文

Java南阳OJ-ASCII码排序

2019-11-14 12:40:32
字体:
来源:转载
供稿:网友
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表达式的执行是有顺序的


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表