java - 反转整数而不丢失输入中的 0

标签 java int reverse

我有以下代码可以反转整数输入。但是,如果我在开头输入零,例如01234,它将返回整数 4321 而不是 43210。我查看了其他解决方案,但它们都通过将输入作为字符串然后反转字符串来解决问题。但是,我需要我的输入是 int 类型。

有人知道我该如何解决这个问题吗?

public static int reverseInputNumber(int num){
    int reverse = 0;
    while(num!=0) {
        reverse = (reverse*10)+num%10;
        num /= 10;
    }
    return reverse;
}

最佳答案

整数存储整数值,而不是整数值的特定表示的编码。所以为了真正得到你想要的东西,你正在谈论反转整数的表示。

编辑:我想我会添加一些代码来解决使用字符串的解决方案。

public static int reverseInputNumber(int num)
{
    String reverse = StringBuilder(num + "").reverse().toString();
    return reverse;
}

第二次编辑:实际上,即使这段代码也不会执行您希望它执行的操作。通过将 int 作为参数,您已经失去了整数的原始表示形式。可以准确地说,没有函数可以只接受一个整数参数并返回与原始表示相反的东西。您将只需要处理字符串或其他一些更合适的数据结构。

关于java - 反转整数而不丢失输入中的 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389558/

相关文章:

java - 用于填充不同列表的三元运算符 - 编译器错误

swift - 在 SpriteKit 中创建随机数

Java:将 long 转换为 int

c - 努力在C中反向解密算法

php - 使用 PHP - SPL 解决方案反向遍历数组?

java - 如何在java项目中运行python文件?

java - 当字符串长度变化时使用 String.format()

javascript - 反转对象值和 boolean 值 - 2 个 JavaScript 代码

java - Java 中的 Ajax 长轮询,Spring MVC - session 范围问题

c - 当我只从 int 切换到 double 时,为什么程序提供 -143155...?