下面是我翻转给定整数并显示翻转结果的代码。它运行但我有问题,当数字小于两位数。它显然无法翻转。我想让循环成为一个if else声明“如果数字是两位数或更多反转。” “否则说明整数需要两位或更多位数。”我怎么能这样做?
import java.util.Scanner;
public class ReverseInteger {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter an integer that you would like to have reversed: ");
int number = input.nextInt();
reverse(number);
}
public static void reverse(int userInteger)
{
int tempDigit = 0;
while (userInteger > 0){
tempDigit = userInteger % 10;
System.out.print(tempDigit);
userInteger = userInteger / 10;
}
}
}
我试图让它理解01可以转换为10.这需要通过代码理解userInteger超过一位数来完成,但我似乎无法弄清楚如何做到这一点..关于我如何检查两位数并相应地执行循环的任何想法都将不胜感激!
答案 0 :(得分:1)
我建议使用String.valueof(int).toCharArray();
并反过来循环以撰写new char[]
。然后使用Integer.parseInt(String);
答案 1 :(得分:1)
public static void reverse(int n)
{
int temp = 0;
int count = 0;
while(n != 0)
{
if(n%10 == 0)count++;
temp = temp*10 + n %10;
n /= 10;
}
for(int i = 0; i < count; i++)
{
System.out.print(0);
}
System.out.println(temp);
}
答案 2 :(得分:1)
使用Integer.toString
方法将int转换为String并将其保存为字符串。声明一个稍后将用作输出的String。启动一个for循环,该循环遍历从其末尾到其开头的数字(转换为String)。它将每个字符从end到start添加到输出String。这导致输出String与数字String的反转。然后只需使用Integer.parseInt
方法转换输出String并返回int
值。
代码应如下所示:
public static int reverse(int n)
{
String number = Integer.toString(n);
String output;
for(int i = number.length()-1; i >= 0; i--)
output += number.charAt(i);
return Integer.parseInt(output);
}