到目前为止,我的代码完成了它应该做的所有事情,但有一点,它应该从数组中排除“0”,我不知道如何将其实现到我的代码中并在数量为正时排除数字0 (pozitivne)我的代码中的数字。
这是我的代码:
Integer[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87, 12};
int pos2 = 0, neg2 = 0;
for (int i : array) {
if (i >= 0) {
pos2++;
} else {
neg2++;
}
}
p1 = new int[pos2];
n1 = new int[neg2];
pos2 = 0;
neg2 = 0;
for (int i : array) {
if (i >= 0) {
p1[pos2] = i;
pos2++;
} else {
n1[neg2] = i;
neg2++;
}
}
System.out.print("Ukupno: ");
for (int i : array) {
System.out.print(" " + i);
}
System.out.print("\nPozitivni: ");
for (int i : p1) {
System.out.print(" " + i);
}
System.out.print("\nNegativni: ");
for (int i : n1) {
System.out.print(" " + i);
}}}
答案 0 :(得分:2)
你需要两个条件,一个是积极的,另一个是负面的。如果您只是从条件(i> = 0)中删除“=”,则“0”将进入负数组。
Integer[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87, 12};
int pos2 = 0, neg2 = 0;
for (int i : array) {
if (i > 0) {
pos2++;
} else if(i < 0){
neg2++;
}
}
p1 = new int[pos2];
n1 = new int[neg2];
pos2 = 0;
neg2 = 0;
for (int i : array) {
if (i > 0) {
p1[pos2] = i;
pos2++;
} else if(i < 0){
n1[neg2] = i;
neg2++;
}
}
System.out.print("Ukupno: ");
for (int i : array) {
System.out.print(" " + i);
}
System.out.print("\nPozitivni: ");
for (int i : p1) {
System.out.print(" " + i);
}
System.out.print("\nNegativni: ");
for (int i : n1) {
System.out.print(" " + i);
}}}
使用集合的结果相同,只需要一个循环来过滤正面和负面。
Integer[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87, 12};
List<Integer> pos1 = new ArrayList<>();
List<Integer> neg1 = new ArrayList<>();
for (int i : array) {
if (i > 0) {
pos1.add(i);
} else if(i < 0){
neg1.add(i);
}
}
System.out.print("Ukupno: ");
for (int i : array) {
System.out.print(" " + i);
}
System.out.print("\nPozitivni: ");
for (int i : pos1) {
System.out.print(" " + i);
}
System.out.print("\nNegativni: ");
for (int i : neg1) {
System.out.print(" " + i);
}
答案 1 :(得分:0)
将您的BlockedListener
更改为connectionFactory
另外,将if (i >= 0) {
更改为if (i > 0) {
这是因为您使用} else {
包含0。如果删除} else if (i < 0) {
,则应该没问题。