这个Java怎么写?六个数分为前三位和后三位

img


package com.test.util;
import java.util.Scanner;

/**
 * @ClassName: test
 * @Description:
 * @Author
 * @Date 2021/10/28
 * @Version 1.0
 */
public class Test
{
    public static void main(String[] args) {
        System.out.println("请输入6位数字!按回车结束!");
        Scanner sc = new Scanner(System.in);
        String input = sc.next();
        //不是6位数字就死循环 提示重新输入
        input = isSixNumber(input);
        String part1 = input.substring(0, 3);
        String part2 = input.substring(3,input.length());
        //用 Integer.parseInt() 进行比较时 不需要 考虑 010004 这种情况
        //010会变成10004会变成4
        if(Integer.parseInt(part1) > Integer.parseInt(part2)){
            System.out.println("结果为:" +part1+part2 );
        } else {
            System.out.println("结果为:" +part2+part1 );
        }
    }

    //递归
    private static String isSixNumber(String input) {
        Scanner sc;
        if(input.length()!= 6){
            System.out.println("只能输入6位数字!请重新输入!");
            sc = new Scanner(System.in);
            input = sc.next();
            isSixNumber(input);
        }
        return input;
    }
}
public int change(int num){
    int front = num / 1000; //前三位
    int back = num % 1000;//后三位
    if(front >= back){
        //前三位大于后三位不转换
        return num;
    } else {
        //转换
        return back * 1000  + front;
   }

}

两种思路:

  1. 把数字转成字符串,然后做字符串切分即可,提取前面三个字符,在提取后面三个字符;
  2. 整数不做转换,先写一个循环判断一下整数的位数,然后通过整除和取余运算提取前三位和后三位。
    虽然第2种方法的代码量比较大,但是,效率比字符串的效率高。而字符串的方案实现起来比较简单明了。

emmm. 楼主真懒,问题的内容是截图,我这里都写完答案了,图片才刷新出来。
既然已经给定了是六位数了,就直接整除+取余来提取前三位和后三位吧。
@饶小乖 的答案最简单了。