好的,我在获取数字并将它们存储到 int 数组时遇到了问题。我有代码的基本轮廓,但是我无法以一种在一组非零数字前面有 0 时显示的方式存储它们。
例如,当我这样做时:
String s = "030142165109876";
private static void breakCode(String s){
int x = s.length(), m = 0, l = x/5;
String[] array = s.split("");
int[] output = new int[l+1];
int[] results = new int[array.length];
for(int i = 0; i < x/5; i++){
double y = 0;
if(i == 0){
for(int r = 5; r >= 0; r--){
try {results[m] = Integer.parseInt(array[m]);} catch (NumberFormatException nfe) {};
y = y + (Math.pow(10, r) * results[m]);
m++;
}
output[i] = (int) y;
System.out.println(output[i]);
}
if (i != 0){
for(int r = 4; r >= 0; r--){
try {results[m] = Integer.parseInt(array[m]);} catch (NumberFormatException nfe) {};
y = y + (Math.pow(10, r) * results[m]);
m++;
}
output[i] = (int) y;
System.out.println(output[i]);
}
}
}
此代码的输出是:
3014
21651
9876
如何让零保持在左侧?我知道这是因为我正在使用幂函数,并且打印时不会显示该幂的最左侧值。有什么方法可以强制 int 数组保存 5 位数字,以便当数字小于 10000 时,它将最左边的值保存为 0?第二行不以 0 开头,因此它正确保存了所有 5 个数字,但不是第一个和第三个(我写了数字作为示例,实际程序使用随机数字)。
完全公开,这是一个作业,但我想出的解决这个问题的编程方法并没有解决它。我已经在整个网站上广泛搜索了我的具体问题(相信我,我已经开始喜欢在这里搜索),但我没有找到任何关于这个具体问题的有用花絮。这也是我自己解决问题的方法,如果有办法在 int 数组中保存 5 位数字,那么我很乐意用我的解决方案来做,而不是让我朋友的编码伙伴想出一个真正的不是我自己的创意的优雅解决方案。
谢谢
PS我很啰嗦