【发布时间】:2019-04-19 14:09:01
【问题描述】:
我正在尝试使用 do-while 反转 Integer 数组中的每个数字,但出现 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);
}
}
【问题讨论】:
-
int[] 反向 = null;反向未初始化
-
如你所见,我用过……但没用
-
不先创建就无法使用。这就是您在这里获得 NPE 的原因。
-
reverse被设置为空。您不能将 null 视为数组。您需要将reverse初始化为 实际 数组:int[] reverse = new int[number.length]' -
谢谢..你能检查一下图片并指导我完成结果吗?
标签: java arrays loops reverse do-while