Java 为什么我的代码不能准确地给出反向编号

Java 为什么我的代码不能准确地给出反向编号,java,Java,Java代码示例:我面临的问题是,当我插入010时,它只显示1而不是整数;当我插入200时,它给我的反向数字只有2,而它应该显示精确002。如何才能获得反向的精确数字: class Reverse{ public static void main(String args[]){ int remander,sum=0; int number=454; while(n>0) // loop here {

Java代码示例:我面临的问题是,当我插入010时,它只显示1而不是整数;当我插入200时,它给我的反向数字只有2,而它应该显示精确002。如何才能获得反向的精确数字:

class Reverse{
    public static void main(String args[]){  
      int remander,sum=0;    
      int number=454;      
      while(n>0) // loop here
      {
           remander=n%10;  // Getting remainder
           sum=(sum*10)+remander;    
           number=number/10;   
      } 
        System.out.println("Reverse"+sum);
    }   
}  

很明显,您是Java新手,也是编程新手。欢迎来到StackOverflow。我将补充一些我通常不会提供的额外建议,以帮助您更快地康复

不要为一件以上的事情重复使用一个变量。只用于一件事。这意味着,如果一个变量保存您的输入,不要用中间值覆盖它。变量相对便宜,创建另一个变量。您可以通过将变量标记为final来实践这一点,这将防止您在赋值后更改其值

使用有意义的变量名。r不是一个有意义的名称。余数是一个有意义的名称。这会立即帮助其他人,并且会在以后当程序在你脑海中不新鲜,你不记得r的意思时帮助你

一旦你掌握了不重用变量,你就会有很多变量。查找设置一次、读取一次的变量,并尝试重新排列代码以完全删除它们。理解我的意思需要一些时间,但是如果您听说过重构,那么想法是删除变量名,因为它没有被使用两次,所以它可能不是问题的关键部分

现在,应用这些规则

  final int number = 454;      
  // get the number digits, smallest to largest
  int remainder = number;
  int accumulator = 0;
  while (remainder > 0) {
     final int digit = remainder % 10;
     accumulator = accumulator * 10 + digit;
     remainder = remainder / 10;
  }
  final int reversed = accumulator;
请注意,数字从不使用两次

  final int number = 454;      
  // get the number digits, smallest to largest
  int remainder = number;
  int accumulator = 0;
  while (remainder > 0) {
     accumulator = accumulator * 10 + remainder % 10;
     remainder = remainder / 10;
  }
  final int reversed = accumulator;
请注意,所有这些逻辑都可能有一个很好的名称,因此我们将创建一个方法

  public int reverse(int value) {
      int remainder = value;
      int accumulator = 0;
      while (remainder > 0) {
          accumulator = accumulator * 10 + remainder % 10;
          remainder = remainder / 10;
      }
      return accumulator;
  }
这将清除其他代码以

  final int number = 454;
  final int reversed = reverse(number);
甚至可能

  final int reversed = reverse(454);

因为010是以八进制表示法输入的数字。不是十进制。引号中的引号是什么?XML和它有什么关系?什么是**输出**反向+求和;mean?Reverse.java:12:错误:表达式的非法开始:**Output**Reverse+sum@它只显示1位数字?而且,在Java中,如果使用的是十进制数字,则千万不要以0开头。以0开头的数字是八进制数。例如,09在Java中是一个无效的数字,因为八进制数字没有9位。您使用数字违反了您自己的规则3。我不明白你为什么一开始就引入它。@Marqueisoflorne你会注意到我不是一次编写代码,而是编写代码并修改几次。最初的通行证引入了数字,然后在随后的重写中删除。谢谢亲爱的,我会记住你的建议