如何在java中交换数字

时间:2015-06-09 18:35:51

标签: java for-loop while-loop

我试图在夏天练习java而且我坚持这个问题。我需要在java中用整数交换2个字母。例如,在我的main方法中,我创建了一个名为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();
    }

}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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