我有以下代码可以反转整数输入。但是,如果我在开头输入零,例如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/