簡體   English   中英

在java中將全名拆分為Salutation,Firstname和lastname

[英]To split fullname into Salutation,Firstname and lastname in java

我收到全名,我需要將其拆分為稱呼、名字和姓氏 例如。

  • 史蒂夫·埃蒙德==> 史蒂夫作為名字​​,埃蒙德作為姓氏(此處稱呼為空)
  • Mr Chris Barker ==> Mr 作為稱呼,Chris 作為名字,Barker 作為姓氏
  • Justin ==> Justin as lastname(稱呼和名字為空)

注意:接收 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM