字符串个数的麻烦
package pro01; import java.util.Scanner; //题目:输入一个数字字符串,比如1 2 3 4 5 6 7 8 9。数字之间用空格分割。 //奇数位的数字升序排列,偶数位的降序排列。然后奇数位输出一个,偶数位输出一个。 /** * 一:字符串数组个数不同比较啰嗦 * @author Administrator * */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str=sc.nextLine(); String[] s=str.split(" "); int[] odd;//只是声明 int[] even; if(s.length%2==0){//输入的字符串是奇数个还是偶数个(这个对后面的输出影响比较复杂) odd=new int[s.length/2];//这里是创建数组对象 even=new int[s.length/2]; }else{ odd=new int[s.length/2+1]; even=new int[s.length/2]; } for(int i=0;i<s.length;i++){//拆分成两个数组 if(i%2==0) odd[i/2]=Integer.parseInt(s[i]); else even[i/2]=Integer.parseInt(s[i]); } for(int i=0;i<odd.length-1;i++){//升序排序 for(int j=i+1;j<odd.length;j++){ if(odd[i]>odd[j]){ int temp=odd[i]; odd[i]=odd[j]; odd[j]=temp; } } } for(int i=0;i<even.length-1;i++){//降序排序 for(int j=i+1;j<even.length;j++){ if(even[i]<even[j]){ int temp=even[i]; even[i]=even[j]; even[j]=temp; } } } if(odd.length==even.length){ for(int i=0;i<odd.length-1;i++){ System.out.print(odd[i]+" "+even[i]+" "); } System.out.println(odd[odd.length-1]+" "+even[odd.length-1]); }else{ for(int i=0;i<even.length;i++){ System.out.print(odd[i]+" "+even[i]+" "); } System.out.println(odd[odd.length-1]); } sc.close(); } }
package pro01; import java.util.Scanner; //题目:输入一个数字字符串,比如1 2 3 4 5 6 7 8 9。数字之间用空格分割。 //奇数位的数字升序排列,偶数位的降序排列。然后奇数位输出一个,偶数位输出一个。 /** * 二:不在一开始就指定奇数偶数字符串数组的个数 * @author Administrator * */ public class Main2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str=sc.nextLine(); String[] s=str.split(" "); int[] odd=new int[512]; int[] even=new int[512]; int x=0; int y=0; for(int i=0;i<s.length;i++){ if(i%2==0){ odd[x]=Integer.parseInt(s[i]); x++; }else{ even[y]=Integer.parseInt(s[i]); y++; } } for(int i=0;i<x-1;i++){//升序排序 for(int j=i+1;j<x;j++){ if(odd[i]>odd[j]){ int temp=odd[i]; odd[i]=odd[j]; odd[j]=temp; } } } for(int i=0;i<y-1;i++){//降序排序 for(int j=i+1;j<y;j++){ if(even[i]<even[j]){ int temp=even[i]; even[i]=even[j]; even[j]=temp; } } } for(int i=0;i<y-1;i++){ System.out.print(odd[i]+" "+even[i]+" "); } System.out.print(odd[y-1]+" "+even[y-1]); if(x>y){ System.out.println(" "+odd[y]); } sc.close(); } }