我试图在夏天练习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();
}
}
答案 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?