當用戶輸入多個空格時,我的程序不能正確打印用戶名。例如,如果用戶輸入他們的名字後加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
你會澄清嗎?我無法看到任何重大差異。 –