Когда пользователь вводит более одного места, моя программа неправильно печатает имя пользователя. Например, если пользователь вводит свое имя, а затем 2 пробела, а затем их фамилию, моя программа предполагает, что эти дополнительные пробелы являются средним именем и печатают среднее имя как пробелы и фамилию в качестве введенной второй строки, хотя введены только две строки. Как я могу улучшить эту проблему, так что лишнее пространство, которое пользователь может ввести, не считается средним или фамильным?Разбрать имя без пробелов?
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Welcome to the name parser.\n");
System.out.print("Enter a name: ");
String name = sc.nextLine();
name = name.trim();
int startSpace = name.indexOf(" ");
int endSpace = name.indexOflast(" ");
String firstName = "";
String middleName = "";
String lastName = "";
if(startSpace >= 0)
{
firstName = name.substring(0, startSpace);
if(endSpace > startSpace)
{
middleName = name.substring(startSpace + 1, endSpace);
}
lastName = name.substring(endSpace + 1, name.length());
}
System.out.println("First Name: " + firstName);
System.out.println("Middle Name: " + middleName);
System.out.println("Last Name: " + lastName);
}
Выход: джо марка
First name: joe
Middle name: // This shouldn't print but because the user enter extra spaces after first name the spaces becomes the middle name.
Last name: mark
Почему вы задали тот же вопрос второй раз сегодня? – piokuc
его не то же самое – user2264244
Вы уточните? Я не смог увидеть существенных различий. –