import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
for (int i = 0; i < 4; i++)
{
int number = input.nextInt();
int reverse = 0;
while (number != 0)
{
reverse = reverse * 10;
reverse = reverse + number % 10;
number = number / 10;
}
System.out.println(reverse);
}
}
}
所有数字反转都很好,但我有倒转以零结尾的数字的问题,例如10000
之类的数字而不是将结果反转为00001
它将结果设为1
这不是什么问题是有没有办法使用整数或字符串将是最好和更容易的方法?谢谢
答案 0 :(得分:0)
尝试颠倒字符串概念
String s ="10000";
String n= "";
for(int i=0; i<s.length(); i++){
n = s.charAt(i) + n;
}
System.out.println(n);
答案 1 :(得分:0)
您可以创建变量length
,并使用System.out.printf
格式化输出。
使用%0 + length + d
,它会在左侧添加0
以使输出具有此length
。
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
for (int i = 0; i < 4; i++)
{
int number = input.nextInt();
int reverse = 0;
int length = String.valueOf(number).length();
while (number != 0)
{
reverse = reverse * 10;
reverse = reverse + number % 10;
number = number / 10;
}
System.out.printf("%0" + length + "d", reverse);
}
}
}
答案 2 :(得分:-1)
您也可以使用StringBuilder
解决此问题。它已经有一个名为reverse
的方法:
public String reverseInput(int number) {
String s = Integer.toString(number);
return new StringBuilder(s).reverse().toString();
}
除了0
本身之外,您不能以0
开头的整数。因此,您必须使用字符串或其他数据结构。