2017-08-18 34 views
-3

我的代碼到目前爲止做它應該做的一切,但有一件事,它應該從數組中排除「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); 
    }}} 
+3

你有沒有嘗試將if條件改爲i> 0而不是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); 
    } 
0

更改您的if (i >= 0) {if (i > 0) {

此外,改變你的} else {} else if (i < 0) {

這是因爲你,包括0與>=。如果你刪除=,它應該沒問題。