如何交换 java 中的数字

How to swap digits in java

我整个夏天都在努力练习 java,但我被这个问题困住了。我需要在 java 中交换整数中的 2 个字母。例如,在我的主要方法中,我创建了一个名为 swapdigits 的方法,我的参数为 1432。程序应该交换 4 和 1 以及 3 和 2。输出应该是 4123,因为它按顺序交换了两个字母。假设我执行 swapdigits(1341234),输出应该是 3114324。我知道我必须使用 while 循环,但我在交换过程中卡住了。

这是我目前拥有的:

public static void main(String[] args) {
    Swapdigits(2413);

}
public static void Swapdigits(int number){

    while(number>0){
        int y=number/1000;
        int x=number%10;
        int original=number-y;
        System.out.println(original);
    }
     System.out.println();
    }

}
public static int swapDigitPairs(int number) {
    int result = 0;
    int place = 1;
    while (number > 9) {
        result += place * 10 * (number % 10);
        number /= 10;
        result += place * (number % 10);
        number /= 10;
        place *= 100;
    }
    return result + place * number;
}

你也可以试试

char[] a = String.valueOf(number).toCharArray();
for (int i = 0; i < a.length - 1; i += 2) {
    char tmp = a[i];
    a[i] = a[i + 1];
    a[i + 1] = tmp;
}
int number = Integer.parseInt(new String(a));

因为您只是交换数字的位置,所以实际上数字是多少并不重要。因此,将参数表示为字符串可能更容易(也更有意义)。这样你就不会处理奇怪的模运算符——如果你手动解决问题,你真的会做任何数学运算吗?无论是一堆字符的数字,你都会同样对待这个问题。

查看以下问题,了解有关交换字符串中字符的信息: How to swap String characters in Java?