Как извлечь положительные числа из одного массива и переместить их в другой в Java?

#java #arrays

#java #массивы

Вопрос:

Возможно, я все делаю неправильно, но у меня есть массив чисел, и я хотел бы извлечь положительные числа из этого массива и поместить их в отдельный массив. Потенциально я хотел бы сделать то же самое с отрицательными числами.

Вот что я пробовал (код неправильный, но я застрял здесь на данный момент):

 public static void main(String[] args) {
 int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
 
 int [] arrayPositive = Arrays.copyOf(array, 13);
 
    for (int i = 0; i < arrayPositive.length; i  ) {
      if (i > 0) {
          System.out.println(""   i);
      }
    }
  

Любая обратная связь будет более чем приветствоваться! Заранее спасибо.

Комментарии:

1. я думаю, что if( i > 0) вы имели в виду if(array[i] > 0) и System.out.println("" array[i]); вместо того, чтобы просто печатать счетную переменную.

Ответ №1:

Вот так

     public static void main(String[] args) {
        int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
        int l = array.length;
        int[] arrayPositive = new int[l];
        int[] arrayNegative = new int[l];
        int i,j,k;
        i=j=k=0;
        for (i = 0; i < l; i  ){
            if (array[i] > 0) {
                arrayPositive[j]=array[i];
                  j;
            }
            else if(array[i] < 0){
                arrayNegative[k]=array[i];
                  k;
            }
        }
        for (i = 0; i < l; i  ){
            System.out.println(arrayPositive[i] "t"   arrayNegative[i]);
        }
    }
  

Ответ №2:

Если вы хотите извлечь положительные числа, ваш if должен проверить, больше ли каждый элемент массива 0, как в следующем коде.

 for (int i = 0; i < arrayPositive.length;   i) {
      if (arrayPositive[i] > 0) {
          System.out.println(""   arrayPositive[i]);
      }
    }
  

Ответ №3:

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