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

Как проверить правильность введенных данных в ячейку во время игры в крестики нолики? Нужно считать правильным вводом, если на одной строке ввели два числа (столбец и строку) от 1 до 3. Пробелов может быть сколько угодно.

Нужно написать функцию, которая принимает строку и возвращает клетку Cell в случае, если строка содержит только пробелы и два числа от 1 до 3. Иначе функция должна вернуть null. Классы Имя класса: Cell, поля: int row, int col.

Сигнатура функции Название функции: parseMove.

Параметры: String line.

Возвращаемый тип: Cell.

Ниже код моего решения, но он выводит только числовой массив. Дальше как я понимаю мне нужно циклом пройтись по этому массиву и проверить их. Я это вроде бы делаю, но программа все ровно выводит тот массив, хотя если я ввожу в main не числовые значения, то получаю ошибку. Мой вопрос: как решить задачу, чтобы правильно проверять введенные данные.

public class TicTacToe_105 {
    public static class Cell{
        public int row;
        public int col;

        public Cell(){
        }
        public Cell(int row, int col){
            this.row = row;
            this.col = col;
        }
    }
    public static Cell parseMove(String line) {
        Cell num = new Cell();
        String str [] = line.split(" ", 1);
        int array [] = new int[str.length];
        for (int i = 0; i < array.length; i++){
            array[i] = Integer.parseInt(str[i]);
            if (array[i] >= 1 && array[i] <= 3){
                num.equals(array);
            }else{
                num = null;
            }
        }
        return num;
    }

    public static void main(String[] args) {
        String line = "13454";
        parseMove(line);
        System.out.println(line);
    }
}

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

Автор решения: DrMcSheen
public static Cell parseMove(String line) {
    Cell num = new Cell();
    // удаляем пробелы в начале и конце строки и множественные пробелы
    line = line.replaceAll("[\\s]{2,}", " ").trim();
    // проверяем наличие посторонних символов
    String str = line.replaceAll("[^ 1-3]", "");
    // в итоге должны остаться две цифры и один пробел мужду ними
    if (str.length() != 3 || !str.equals(line))
        return null;
    str = str.replaceAll(" ", "");
    int tmp = Integer.parseInt(str);
    num.row = tmp / 10;
    num.col = tmp % 10;
    return num;
}
→ Ссылка