我想寫一個循環,提示用戶輸入他們的第一個中間名和最後一個名,然後我想通過搜索每個名稱之間的空格來驗證該輸入。驗證用戶輸入字符串
示例:第一中間最後
我在找的是類似於下面的內容。僞代碼:如果名稱包含2個空白並且它們的名稱小於3個空格,則操作已成功,否則請告訴用戶重新輸入其第一個中間名和最後一個名。
我該如何去做這件事?
import java.util.Scanner;
public class Example
{
public static void main(String[] args)
{
boolean isName = false;
String name = "";
int x = name.length();
Scanner input = new Scanner(System.in);
while(!isName) // Probably better to remove the while loop entirely
{
System.out.print("Please input your 'First Middle Last' name: ");
name = input.nextLine();
name.trim(); // To remove any leading or trailing white spaces
for(int i = 0; i < x; i++)
{
if(name.lastIndexOf(' ', i) == 2 && name.lastIndexOf(' ', i) < 3)
{
isName = true;
break;
}
else
System.out.print("\nEnter your name as 'First Middle Last': ");
name = input.nextLine();
name = name.trim();
System.out.print("\nInvalid input");
}
}
}
}
以上產生一個無限循環,邏輯上我明白爲什麼。
我想你應該考慮的正則表達式,這是簡單的任務 –
我有一個很難理解大量的代碼:「如果名稱中包含2個白色空間及其少於3個白色空間名稱的操作有已成功「 – Ceelos
怎麼樣?這是Psuedo代碼?如果此人進入托馬斯[空間]瓊斯[空間],然後[史密斯]輸入是正確的,如果用戶輸入[托馬斯]空間然後命中輸入然後輸入將是不正確的。我需要至少兩個空格 – Afflicted