在Java中反转整数

时间:2015-04-29 02:47:20

标签: java integer reverse

下面是我翻转给定整数并显示翻转结果的代码。它运行但我有问题,当数字小于两位数。它显然无法翻转。我想让循环成为一个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超过一位数来完成,但我似乎无法弄清楚如何做到这一点..关于我如何检查两位数并相应地执行循环的任何想法都将不胜感激!

3 个答案:

答案 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);
}