Печать имени и фамилии от имени, фамилии до фамилии, имени - PullRequest
0 голосов
/ 24 октября 2019

Метод formatName должен принимать строку с именем name, которая содержит имя в формате «First Last». Вы можете предположить, что в строке есть только один пробел. Метод должен создать и вернуть строку, содержащую имя в формате «Last, First».

public static void formatName ( String name ) {
 Scanner scan = new Scanner ( System.in);

 String firstName;
 String lastName;
 int index;


 System.out.println(" Enter First Name : ");
 firstName = scan.nextLine();

 System.out.println(" Enter Last Name : ");
 lastName = scan.nextLine();

 for ( int i = 0; i < lastName (); i++){
    for ( int x = 0; x < firstName(); x++){

 name += firstName.charAt(i);
 name += lastName.charAt(x);

 return name;
    }
 }

}//end formatName

1 Ответ

0 голосов
/ 24 октября 2019

Ваш метод formatName более сложный, чем должен. Требуется взять одну строку с именем (пробелом) и фамилией и вернуть фамилию (через запятую) имя.

Ввод пользователя должен происходить вне метода formatName.

Проверьте примерниже

public static void main(String[] args) throws Exception {
        Scanner scan = new Scanner ( System.in);
        System.out.println(" Enter Name : ");
        String name = scan.nextLine();
        System.out.println("Input: " + name);
        System.out.println("Formated: " + formatName(name));
    }

    public static String formatName ( String name ) throws Exception {
        String[] nameTokenized = name.split(" ");
        if (nameTokenized.length!=2){
            throw new Exception("Incorrect Name");
        }
        String firstName = nameTokenized[0];
        String lastName = nameTokenized[1];

        return lastName + ", " + firstName;
    }//end formatName

В основном методе Пользователь может ввести одну строку (имя). Код вызывает метод formatName(name) для этой входной строки и ожидает, что метод вернет строку, напечатанную на консоли.

Метод formatName разбивает имя String на части, которые хранятся в массиве (nameTokenized),Если длина массива не равна 2, что означает, что между именами и пробелами между ними нет точно, генерируется исключение.

Если ввод (имя) задан правильно, переменные firstName и lastName имеют видset и метод возвращает строку в формате lastname (запятая) firstname.

Пример вывода:

 Enter Name : 
Joe Doe
Input: Joe Doe
Formated: Doe Joe

При неверном вводе

 Enter Name : 
Joe Doe Doe
Input: Joe Doe Doe
Exception in thread "main" java.lang.Exception: Incorrect Name
    at Main2.formatName(Main2.java:17)
    at Main2.main(Main2.java:11)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...