再会!我用条件解决了一个问题:给定一个随机正数,有必要将这个数的数字以相反的顺序返回到数组中。
为此,我编写了以下代码:
public static int[] digitize(long n) { ///!!!!!!
// Code here
List<Integer> list = new ArrayList<>(DigitsInNumbers(n));
Collections.reverse(list);
int [] myArr = new int [list.size()];
for (int i = 0;i<myArr.length;i++){
myArr[i] = list.get(i);
}
return myArr;
}
public static List<Integer> DigitsInNumbers (long number){
String n = Integer.toString((int)number);
char [] charArray = n.toCharArray();
List<Integer> cia = new ArrayList<>();
for (int i = 0; i<charArray.length;i++){
int c = Character.getNumericValue(charArray[i]);
cia.add(c);
}
return cia;
}
在测试时,它给出了以下错误:应该使用一些预设的数字:数组首先在元素 [0] 处不同;预期:<0> 但结果:<6>
有时如果数字是,例如,2422044068。它根本不让它运行,并说 Intager number too large。
通常,它适用于 int 值。
请告诉我我在哪里搞砸了:(
先感谢您!
如果你打印这一行
您会看到 int 的最大值为 2147483647 并且像您这样的数字应该存储在 long 中,并添加
L
到数字的末尾。好吧,有几个选项可以解决您的问题