将整数数组转换为一个长整数

时间:2016-01-23 21:45:22

标签: java arrays methods

我需要编写一个程序来从用户接收一个数字,使用user = defined方法来反转数字,然后将数字作为整数返回。以下是我到目前为止的情况。我试图看看我是否可以从数组中取出每个数字,并以某种方式将它们组合成一个整数。我需要将它们作为字符串放在一起,然后将其转换为整数吗?还是有更简单的方法来做到这一点?

import java.util.*;

public class UserDefinedMethods
{
  static Scanner keyboard = new Scanner(System.in);

   public static int reverseDigits(int num)
   {
     int reverse[];
     int i = 0;
     int out = 0;
     do
     {
      if (num < 0)
         num = (num * -1);

         reverse[i] = num % 10;
         num = num/10;
         i++;
      }
   while (num > 0);
      out = 
   return reverse; //HERE IS MY PROBLEM I BELEIVE.
   }

   public static void main(String[] args)
   {
     int number = 0;
     int output = 0;
     System.out.println("Please enter a number:");
     number = keyboard.nextInt(); 
     output = reverseDigits(number);
     System.out.println(output);
   }
}

2 个答案:

答案 0 :(得分:1)

可以按如下方式撤销int

  1. result设为零。
  2. 如果数字为零,则返回到目前为止的结果
  3. 在结果中添加尾随零
  4. 将尾随零替换为原始数字的最后一位数
  5. 删除原始号码的最后一位数
  6. 转到第2步。
  7. 以下是如何在Java中选择的东西:

    • 要使用int lastDigit = number % 10;
    • 获取最后一位数字
    • 要删除最后一位数,请使用number /= 10;
    • 要添加零作为结果的最后一位,请使用result *= 10;
    • 要使用result += lastDigit;
    • 替换最后一位数

    Demo.

答案 1 :(得分:0)

好的,首先,您尝试反向返回数组,但是您的方法声明设置为返回int(不是int [])。其次,您的代码可以简化如下:

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

希望这有帮助! :)