[英]To split fullname into Salutation,Firstname and lastname in java
我收到全名,我需要將其拆分為稱呼、名字和姓氏。 例如。
注意:接收 Miss, Mr, Mrs 作為稱呼值。
代碼:
String FirstName="";
String fullName="Barker";
String[] nameArray=fullName.split(" ");
if(nameArray.length<3)
{
System.out.println("Salutation: " + nameArray[0]);
System.out.println("LastName: " + nameArray[1]);
System.out.println("FirstName: " + FirstName);
}else if(nameArray.length>=3){
System.out.println("Salutation: " + nameArray[0]);
System.out.println("LastName: " + nameArray[nameArray.length - 1]);
for (int index = 1; index < nameArray.length - 1; index++) {
FirstName = FirstName + " " + nameArray[index];
}
System.out.println("FirstName: " + FirstName.trim());
}
當輸入中給出的所有值(即 Chris Barker 先生)時,上面的代碼工作正常,對於其余情況,它失敗了。 任何人都可以為我提供解決方案嗎?
方法一:
String fullName="Steve Emond"; String[] nameArray=fullName.split(" "); if(nameArray.length==1) { System.out.println("LastName: " + nameArray[0]); }else if(nameArray.length==2){ System.out.println("FirstName: " + nameArray[0]); System.out.println("LastName: " + nameArray[1]); } else if(nameArray.length==3){ System.out.println("Salutation: " + nameArray[0]); System.out.println("FirstName: " + nameArray[1]); System.out.println("LastName: " + nameArray[2]); }
使用正則表達式方法 2:
String fullName="Mr Justin raj Savarimuthu"; Pattern pattern = Pattern.compile(new String ("(Mr\\\\s|Miss\\\\s|Mrs\\\\s)")); if(fullName.matches("(Mr\\\\s|Miss\\\\s|Mrs\\\\s).*")) { System.out.println("Salutation:"+fullName.substring(0,fullName.indexOf(' '))); fullName=pattern.split(fullName)[1].trim(); } String[] parts = fullName.split(" "); String firstName=""; for(int i=0;i<parts.length-1;i++) { firstName=firstName+parts[i]+" "; } if(firstName!="") System.out.println("FirstName:"+firstName); System.out.println("LastName:"+parts[parts.length-1]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.