如何从正数组中删除零?

时间:2018-01-09 16:17:26

标签: java arrays

这是我的代码:

package javaapplication11;
import java.util.Arrays;

public class JavaApplication11 {

    public static void main(String[] args) {
        int array [] = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
        System.out.println(array.length);

        int negative[];
        int positive[];

        int counter = 0;
        int counter2 = 1; 

        for(int i=0;i<array.length;i++){
            if(array[i]<0){
                counter++;
            }
        }
        negative = new int[counter];
        positive = new int[array.length-counter];

        for(int i=0,n=0,p=0;i<array.length;i++){
            if(array[i]<0){
                negative[n++]=array[i];
            } else  {
                positive[p++]=array[i];
            }
        }
        System.out.println(Arrays.toString(array));
        System.out.println(Arrays.toString(negative)); 
        System.out.println(Arrays.toString(positive));

        Arrays.sort(array);
        System.out.println(Arrays.toString(array));

        for(int i=1;i<array.length-1;i++){
            if(array[i] == array[i-1]){
                System.out.println("Duplicate: " +array[i]);
            }    
        }
    }   
}

我的输出如下:

  • 13
  • [12,23,-22,0,43,545,-4,-55,43,12,0,-999,-87]
  • [ - 22,-4,-55,-999,-87]
  • [12,23,0,43,545,43,12,0]
  • [ - 999,-87,-55,-22,-4,0,0,12,12,23,43,43,545]
  • 重复:0
  • 重复:12
  • 重复:43

我需要从正数组中删除零。怎么样?

1 个答案:

答案 0 :(得分:1)

操纵正数时可以忽略零:

for(int i=0, n=0, p=0;i < array.length; i++) {
    if (array[i] < 0) {
       negative[n++] = array[i];
    } else if (array[i] > 0) {
         positive[p++] = array[i];
    }
}

希望它有所帮助!