Разделитель строки на ФИО (без регулярных выражений) JAVA

ФИО должно состоять только из букв и символа дефис (в случае двойного имени/фамилии/отчества). Никаких других символов не должно допускаться. Не могу понять как сделать проверку, НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ. (единственное что нашёл это hasNextInt, чтобы отсечь числа);

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    if (scanner.hasNextInt()) {
      System.out.println("Введенная строка не является ФИО");
    } else {
      String name = scanner.nextLine();
      if (name.equals(" ")) {
        System.out.println("Введенная строка не является ФИО");
      }

      int count = 0;
      for (int i = 0; i < name.length(); i++) {
        if (Character.isWhitespace(name.charAt(i))) count++;
      }

      if (count > 2) {
        System.out.println("Введенная строка не является ФИО");
      } else {
        if (count == 0) {
          System.out.println("Введенная строка не является ФИО");
        } else {
          int familyIndex = name.indexOf(' ');
          int nameIndex = name.lastIndexOf(' ');

          String familyIndex1 = name.substring(0, familyIndex).trim();
          System.out.println("Фамилия: " + familyIndex1);
          String nameIndex1 = name.substring(familyIndex, nameIndex).trim();
          String patronymicIndex = name.substring(nameIndex).trim();

          if (nameIndex1.equals("")) {
            System.out.println("Имя: " + patronymicIndex);
            System.out.println("У человека нет отчества");
          } else {
            System.out.println("Имя: " + nameIndex1);
            System.out.println("Отчество: " + patronymicIndex);
          }
        }
      }
    }
  }
}

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

Автор решения: ЮрийСПб

Очень размытые требования. Можно например так: только буквы, пробелы и дефис.

String fio = ...;

for (Char c: fio) {
    if (c.isLetter() || c == '-' || c == ' ') {
        continue;
    } else {
        throw IllegalArgumentException("Not valid fio");
    }
}

Однако, такое пропустит всякое типа tetsбе-бе-бе

→ Ссылка