Java中的反向整数
下面是我用来翻转给定整数并显示翻转结果的代码。它运行,但我有问题时,数字小于两位数。它显然不能被翻转。我想让循环成为一个if-else,声明“if数是两位数或更多的倒数。”“else声明整数需要是两位数或更多的位数。”我该怎么做呢Java中的反向整数,java,integer,reverse,Java,Integer,Reverse,下面是我用来翻转给定整数并显示翻转结果的代码。它运行,但我有问题时,数字小于两位数。它显然不能被翻转。我想让循环成为一个if-else,声明“if数是两位数或更多的倒数。”“else声明整数需要是两位数或更多的位数。”我该怎么做呢 import java.util.Scanner; public class ReverseInteger { public static void main(String[] args) { Scanner input = new Sca
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不止一个数字,但我似乎不知道如何做到这一点。。。任何关于如何让我可以得到这两个数字检查,并执行相应的循环的想法将不胜感激 我建议使用
String.valueof(int.tocharray()
并反向循环以组成一个新字符[]
。然后使用Integer.parseInt(字符串)代码>公共静态无效反向(int n)
{
内部温度=0;
整数计数=0;
而(n!=0)
{
如果(n%10==0)计数++;
温度=温度*10+n%10;
n/=10;
}
for(int i=0;i
使用Integer.toString
方法将int转换为字符串,并将其保存为字符串。声明稍后将用作输出的字符串。启动一个for循环,该循环从头到尾遍历数字(已转换为字符串)。它将每个字符从头到尾添加到输出字符串中。这将导致输出字符串与数字字符串相反。然后只需使用Integer.parseInt
方法转换输出字符串并返回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);
}
您可以为特殊消息测试userInteger>9
,也可以作为while循环中的条件测试(然后打印循环后的剩余数字)while(userInteger>9){..}System.out.print(userInteger)代码>“当数字小于两位数时。它显然不能翻转。”从技术上讲,你错了。。。1的反面是1!2的倒数是2。我知道它会翻转到相同的值。我只是想让代码中有更多的逻辑,使它看起来更深入地反转整数。“我试图让它理解01可以转换为10。”不要直接打印到控制台。。。将tempDigit附加到字符串和整数中。pasrseInt(str)不能在整数中存储“05”。您必须使用字符串,然后才能使用String.length()。我试图使用提供的代码并进行编辑以在代码中工作,但字符串输出出现错误;声明它无法初始化。我试图让它成为一个值,但它也失败了,我在你的代码中看到了登录名,这似乎正是我要寻找的。根据@SrinathGanish所说,它需要一个字符串来计算空格数。然后,如果可能的话,转换。知道字符串输出失败的原因吗?更改字符串输出代码>到字符串输出=”代码>
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);
}