所以我有包含这些数字的数组,我的任务是创建 2 个新数组,其中一个数组(poz)将包含数组中的所有正数,第二个数组(neg)将从数组中取出所有负值
public class obNiza {
public static void main(String[] args) {
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
Arrays.sort(array);
int[] poz= new int[6];
int[] neg= new int[5];
for(int i=0; i<array.length; i++)
{
if(array[i] < 0)
poz[i] = array[i];
else neg[i] = array[i];
}
System.out.println(Arrays.toString(poz));
System.out.println(Arrays.toString(neg));
}
}
最佳答案
由于您事先不知道正数和负数的数量,因此最好使用 ArrayList
。
ArrayList<Integer> poz = new ArrayList<>();
ArrayList<Integer> neg = new ArrayList<>();
然后循环遍历并根据需要添加到相关的ArrayList
for (int i = 0; i < array.length; i++) {
if (array[i] > 0) {
poz.add(array[i]);
} else {
neg.add(array[i]);
}
}
注意:如果您希望 poz
中包含 0,请将 array[i] > 0
更改为 array[i] >= 0
输出:
[12, 12, 23, 43, 43, 545]
[-999, -87, -55, -22, -4, 0, 0]
关于java - 线程中出现异常 "main"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47351846/