Как создать массив из другого массива с условием?

мне нужно создать новый массив из старого. С клавиатуры вводятся цены, далее указывается размер скидки, номер позиции, с которой применить нужно ее и количество позиций, к которым нужно применить скидку. Сразу оговорка - я самостоятельно изучаю Java и имею крайне мало опыта) Вот начало моего кода:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in); // Объявляем Scanner
        System.out.println("Введите количество новых цен: ");
        int size = input.nextInt(); // Читаем с клавиатуры размер массива и записываем в size

        int array[] = new int[size]; // Создаём массив int размером в size
        System.out.println("Введите новые цены:");
        /*Пройдёмся по всему массиву, заполняя его*/
        for (int i = 0; i < size; i++) {
            array[i] = input.nextInt(); // Заполняем массив элементами, введёнными с клавиатуры
        }
        System.out.print("Новые цены:");
        for (int i = 0; i < size; i++) {
            System.out.print(" " + array[i]); // Выводим на экран, полученный массив
        }
        System.out.println();
        System.out.println();

        System.out.println("Введите размер скидки: ");
        int discount = input.nextInt(); // Читаем с клавиатуры размер скидки
        if (discount > 99) {
            System.out.println("Размер скидки от 1 до 99! Введите корректное значение скидки: ");
            discount = input.nextInt();
        }

        System.out.println("С какой позиции применить скидку?");
        int offset = input.nextInt();

        System.out.println("К какому количеству позиций необходимо применить скидку?");
        int readLenght = input.nextInt();

        int arrayNew[] = new int[readLenght];
        for (int i = 0; i < arrayNew.length; i++) {
            System.out.println(arrayNew[i]);

        }

    }
}

Что делать дальше и как его объявить - я не знаю


Ответы (1 шт):

Автор решения: Вячеслав

Да, помог Arrays.copyOfRange. По условию задачи - скопировать массив чисел и произвести с ними действие. Все заработало.

   public static void rageDis(int readLength, int[] array, int offset, int discount) {

    int arrayNew[] = Arrays.copyOfRange(array, offset - 1, offset - 1 + readLength);

    for (int i = 0; i < readLength; i++) {
        double percent = ((double) (arrayNew[i] * discount)) / 100.0;
        double discountPrice = arrayNew[i] - percent;
        int finalPrice = (int) Math.floor(discountPrice);
        System.out.print(finalPrice + " ");
    }
→ Ссылка