Как напечатать [] в массиве (Java) - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу взять 10 цифр у пользователя и ввести их в новый массив.Как я могу вставить [] в мой вывод?

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
    Scanner scnr = new Scanner(System.in);
    int num = 10;
    List<Integer> inputList = new ArrayList<>(num);
    while (num-- > 0) {
        inputList.add(scnr.nextInt());
    }
    List<Integer> goofyArray = new ArrayList<>(inputList.size());
    for (int i = inputList.size() - 1; i >= 0; i--) {
        if(inputList.get(i) % 7 == 0){continue;}
        if(inputList.get(i) < 0){
            goofyArray.add((inputList.get(i) * -1) * 2);
        } else {
            goofyArray.add(inputList.get(i));
        }
    }
    for (int number : goofyArray) {
        System.out.print( number + " ");
    }
  }
}

Ответы [ 7 ]

0 голосов
/ 14 ноября 2018

Как вставить [] в мой вывод?

Использовать Arrays.toString (int array []) из util package.

System.out.println(Arrays.toString(goofyArray));
0 голосов
/ 15 ноября 2018

Насколько я понимаю, вы хотите напечатать массив как вывод.

Все, что вам нужно сделать, это вместо этого:

for (int number : goofyArray) {
    System.out.print( number + " ");
}

сделать это:

System.out.print(goofyArray.toString());
0 голосов
/ 14 ноября 2018

Если в массиве есть 42, я хочу, чтобы мой код удалил все остальные числа и просто сделал так, чтобы goofyArray содержал 1 элемент 42. В этом примере у нас есть два 42, а остальные - другие числа.Следовательно, он удалит все остальные числа, кроме 42.

public static void main(String[] args) {
        int[] inputArray = { 5, -2, 42, 45, -6, 8, 42, -9, 10, 7 };
        int[] tempArray = new int[inputArray.length];
        int count=0;
        for (int i = 0; i < inputArray.length; i++) {
            if(inputArray[i]==42) {
                tempArray[count]=42;
                count++;
            }
        }
        int[] goofArray=Arrays.copyOf(tempArray, count);
        for(int i=0;i<goofArray.length;i++)
            System.out.print(goofArray[i]+"  ");

    }

Перед редактированием ваш вопрос звучал так: Вы хотели перевернуть массив.Если массив содержит какое-либо отрицательное число, то сначала сделайте его положительным, а затем дважды (-9 станет 18).Если массив содержит элемент, который делится на 7, удалите его.Этот пример выполнит ваше требование.

public static void main(String[] args) {
        int[] inputArray = { 5, -2, 28, 45, -6, 8, 42, -9, 10, 7 };
        int length = inputArray.length;
        int[] goofyArray = new int[length];
        int count=0;
        for (int i = 0; i < goofyArray.length; i++) {
            if (inputArray[length - 1 - i] % 7 != 0) {
                goofyArray[count] = inputArray[length - 1 - i]; // Reverse the array.
                if (goofyArray[count] < 0) {
                    goofyArray[count] = Math.abs(goofyArray[count]) * 2;
                }
                count++;
            }
        }
        int[] goofArray2=Arrays.copyOf(goofyArray, count);
        for(int i=0;i<goofArray2.length;i++)
            System.out.print(goofArray2[i]+"  ");
    }
0 голосов
/ 14 ноября 2018

Чтобы удалить элементы из массива, вы можете использовать ArrayUtils.remove (int array [], int index) из org.apache.commons.lang пакета.

int num[]=new int[] {10,20,30,40,50};
num = ArrayUtils.remove(num, 2); 
0 голосов
/ 14 ноября 2018

Только с использованием статических массивов и без дополнительного импорта, кроме сканера

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        int NUM_OF_INPUTS = 10;
        int [ ] inputArray = new int [NUM_OF_INPUTS]; 
       for (int index = 0; index < NUM_OF_INPUTS; index++){
        inputArray[index] = scnr.nextInt(); 
       }

        int[] goofyArray = new int[inputArray.length];
        int[] arrayWithoutSevensAndReversed; // make a new array because static arrays don't have a remove
        int multiplesOfSeven = 0;

        // for loop 1: reverse and check how many multiples of 7
        for (int i = 0; i < goofyArray.length; i++) {
            goofyArray[i] = inputArray[goofyArray.length - 1 - i]; // Reverse the array.
            if (goofyArray[i] % 7 == 0)
                multiplesOfSeven++;
        }
        // for loop 2: use the new array with that will not contains multiples of seven the array
        arrayWithoutSevensAndReversed = new int[goofyArray.length - multiplesOfSeven];
        for (int x = 0, y = 0; x < goofyArray.length; x++) {
            if (goofyArray[x] % 7 != 0) { // is not multiple of 7, then add it to the array! 
                arrayWithoutSevensAndReversed[y] = goofyArray[x];
                if (arrayWithoutSevensAndReversed[y] < 0) { // make it positive then double! 
                    arrayWithoutSevensAndReversed[y] = arrayWithoutSevensAndReversed[y] * -1 * 2;
                }
                y++;
            }
        }

        for (int number : arrayWithoutSevensAndReversed) {
            System.out.print(number + " ");
        }
    }
}
0 голосов
/ 14 ноября 2018

Не уверен, что вы имеете в виду, когда вставляете [] в мой вывод . Попробуйте:

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        int num = 10;
        List<Integer> inputList = new ArrayList<>(num);
        while (num-- > 0) {
            inputList.add(scnr.nextInt());
        }
        List<Integer> goofyArray = new ArrayList<>(inputList.size());
        //Reverse the array.
        for (int i = inputList.size() - 1; i >= 0; i--) {
            if(inputList.get(i) % 7 == 0){continue;} //doesn't add numbers that are multiples of 7.
            if(inputList.get(i) < 0){
                goofyArray.add((inputList.get(i) * -1) * 2); // Change any numbers that are negative to be positive and twice their value.
            } else {
                goofyArray.add(inputList.get(i));
            }
        }
        int[] output = new int[goofyArray.size()];
        output = goofyArray.toArray(output);
        for (int number : output) {
            System.out.print( number + " ");
        }
    }
}
0 голосов
/ 14 ноября 2018

Вместо того, чтобы называть его удалением, вы можете сместить i + 1-й член в i-й термин

    if ( goofyArray[i] % 7 == 0){
for(int x=i;x<goofyArray.length-1;x++){
goofyArray[x]=goofyArray[x+1]; 
}

Здесь i-й член удаляется.

...