Как удалить столбец из матрицы одномерного массива в Java? - PullRequest
0 голосов
/ 28 февраля 2019

Мне дан одномерный массив, который был напечатан в виде матрицы 3x3, и я пытаюсь создать новый массив, исключающий второй столбец:

123
456
789

public void remCol(int clnum)
{

}

1 Ответ

0 голосов
/ 01 марта 2019

Я реализовал решение.Мое решение динамическое, поэтому длина каждого элемента вашего массива может быть разной.Вот код.

public class Main {

    static int[] array = new int[] { 123, 4565, 78910 };

    public static void main(String[] arg) {
        int clNum = 0;
        remCol(clNum);
        System.out.print("Input : " + clNum + " | Output : [");
        for (int j : array) {
            System.out.print(j + " , ");
        }
        System.out.print("]");
    }

    public static void remCol(int clNum) {

        // checking if clNum is valid
        if (clNum <= 0) {
            return;
        }

        clNum--; // decrement clNum by 1 since array index starts at 0

        for (int i = 0; i < array.length; i++) {
            String value = String.valueOf(array[i]); // convert int to String for easy manipulation
            // checking if value is not null and not empty
            // checking if value has the column index of clNum
            if (value != null && !value.isEmpty() && clNum < value.length()) {
                value = value.substring(0, clNum) + value.substring(clNum + 1, value.length()); // remove the column
                array[i] = Integer.parseInt(value); // convert the String to int
            }
        }

    }
}

Вот вывод и результаты:

Input : 0 | Output : [123 , 4565 , 78910]
Input : 1 | Output : [23 , 565 , 8910]
Input : 2 | Output : [13 , 465 , 7910]
Input : 3 | Output : [12 , 455 , 7810]
Input : 4 | Output : [123 , 456 , 7890]
Input : 5 | Output : [123 , 4565 , 7891]
Input : 6 | Output : [123 , 4565 , 78910]
...