高分悬赏:Java语言怎么把一个数字的奇数位和偶数位拆成2个数字,比如12345,得到135和24

高分悬赏:Java语言怎么把一个数字的奇数位和偶数位拆成2个数字,比如12345,得到135和24

实现思路:

1、转成 String 字符串;
2、String 转成 char[] 字符数组;
3、遍历字符数组,收集奇偶的数到不同的 StringBuffer 后面;
4、打印结果

        String str="12345";
        String str1="";
        String str2="";
        for(int i=0;i<str.length();i++){
            char c= str.charAt(i);
            if(i%2==0){
                str1+=c;
            }else{
                str2+=c;
            }
        }
        System.out.println("str1 = [" + Integer.parseInt(str1) + "]");
        System.out.println("str2 = [" + Integer.parseInt(str2) + "]");

第一个回答不能匹配6789这种情况。判断有问题
我写了一个,你可以看情况简化一下,如果测试没问题,希望采纳

public static void main(String[] args) {
        int num = 12345;
        convert(num);
                num = 6789;
        convert(num);
    }

        //转换,传入一个数字
    public static int[] convert(int num) {
        int odd = 0, even = 0;
        String[] ss = String.valueOf(num).split("");
        String c1 = "", c2 = "";
        for (String s : ss) {
            int b = Integer.parseInt(s);
            if (b % 2 == 0) { //判断是否是偶数
                c1 += b;
            } else { //否则为奇数
                c2 += b;
            }
        }
                //字符串转int类型。为了演示,加了这个,可以直接放进数组
        if (c1 != null && !"".equals(c1)) {
            even = Integer.parseInt(c1);
        }
        if (c2 != null && !"".equals(c2)) {
            odd = Integer.parseInt(c2);
        }
        System.out.println("奇数:" + odd);
        System.out.println("偶数:" + even);

        int[] nums = new int[2];
        nums[0] = odd;
        nums[1] = even;
        return nums;
    }

打印结果
奇数:135
偶数:24

奇数:79
偶数:68