написать программу, которая на входе через консоль принимает ФИО

Нужно написать программу, которая на входе через консоль принимает фамилию, имя и отчество одной строкой (например, «Иванов Сергей Петрович») и выводит фамилию, имя и отчество отдельно в формате, что я и сделала. Однако, теперь нужно сделать так, чтоб если из строки убрать, к примеру, фамилию, или добавить еще 1 слово, программа учитывала это, а не выдавала ошибку. К примеру, писала фразу: "У человека нет отчества".

public class Main
{
    public static void main(String[] args)
    {
        String name = "Федоров Егор Алексеевич";
        int spaceIndex = name.indexOf(' ');
        int spaceIndex1 = name.lastIndexOf(' ');
        System.out.println("Фамилия:\t" + name.substring(0, spaceIndex));
        System.out.println("Имя:\t" + name.substring(spaceIndex, spaceIndex1));
        System.out.println("Отчество:\t" + name.substring(spaceIndex1));
    }
}

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

Автор решения: azlov

Можете сделать проверку на количество введенных параметров:

if (name.split(" ").length == 2) {
   System.out.println("У человека нет отчества");
}

split разделяет строку вокруг регулярного выражения. В этом примере разделяем строку по пробелам т.е. name.split(" ") вернет нам ["Федоров", "Егор", "Алексеевич"].

В if проверяем сколько получилось слов, если два - то выводим сообщение, что отчества нет.

→ Ссылка