首页 > 代码库 > 字符串个数的麻烦

字符串个数的麻烦

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();
        }
}

 

字符串个数的麻烦