首页 > 解决方案 > 在Java中反转数组中的每个数字的问题

问题描述

我正在尝试使用 do-while 反转整数数组中的每个数字,但出现 NullPointerException 错误。我正在尝试反转此数组中的每个元素:例如,如果这是我的数组:{12,34,56}那么结果必须是:{21,43,65}。有人可以帮我吗?

public class Reverse {
  public int[] revCalculator(int[] number) {
    int[] reverse = null;
    for (int j = 0; j < number.length; j++) {
        do {
            reverse[j] = reverse[j] * 10 + number[j] % 10;
            number[j] /= 10;
        } while (number[j] > 0);
    }
    return reverse;
  }
}

public class ShowReverse {

  public static void main(String[] args) {

    // instantiation
    // -----------------------------------------
    Reverse rev = new Reverse();
    @SuppressWarnings("resource")
    Scanner in = new Scanner(System.in);


    System.out.println("Enter The Number Of Elements: ");
    int len = in.nextInt();
    int[] numbers = new int[len];


    for (int i = 0; i < len; i++) {
        System.out.println("Enter Number: ");
        numbers[i] = in.nextInt();
    }


    int[] result = rev.revCalculator(numbers);

    // shows the result
    // -----------------------------------------
    System.out.println("THE REVERSE WOULD BE: ");
    System.out.print(result);

  }
}

图片

标签: javaarraysloopsreversedo-while

解决方案


您必须进行一些更改:

  1. 初始化反向数组int[] reverse = new int[number.length];
  2. System.out.print(result);会给你结果数组的地址。您必须显示数组的元素。

    int[] result = new int[numbers.length];
    result = rev.revCalculator(numbers);
    
    // shows the result
    // -----------------------------------------
    System.out.println("THE REVERSE WOULD BE: ");
    //System.out.print(result);
    for(int i = 0 ; i<result.length; i++)
        System.out.println(result[i]);
    

希望这可以帮助。


推荐阅读