简体   繁体   English

在java中将全名拆分为Salutation,Firstname和lastname

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

I am receiving full name, i need to split this into Salutation, Firstname and lastname .我收到全名,我需要将其拆分为称呼、名字和姓氏 for eg.例如。

  • Steve Emond==> Steve as Firstname , Emond as lastname(here Salutation is Empty)史蒂夫·埃蒙德==> 史蒂夫作为名字​​,埃蒙德作为姓氏(此处称呼为空)
  • Mr Chris Barker ==> Mr as Salutation, Chris as Firstname , Barker as lastname Mr Chris Barker ==> Mr 作为称呼,Chris 作为名字,Barker 作为姓氏
  • Justin ==> Justin as lastname(Salutation and Firstname are empty) Justin ==> Justin as lastname(称呼和名字为空)

Note: received Miss,Mr,Mrs as Salutation values.注意:接收 Miss, Mr, Mrs 作为称呼值。

Code:代码:

 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());
}

The above code works fine when all values given in input( ie Mr Chris Barker ), for the remaining case it failed.当输入中给出的所有值(即 Chris Barker 先生)时,上面的代码工作正常,对于其余情况,它失败了。 can anyone provide me the solution for this?任何人都可以为我提供解决方案吗?

Method 1:方法一:

 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]); }

Using Regex Method 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.

相关问题 Java Regex为Java中的姓,名 - Java Regex for lastname, firstname in java 字符串全名拆分 java - String fullname Split java 对 java 中名字和姓氏的员工列表进行排序 [暂停] - Sorting a collection of List of Employees on firstName and lastname in java [on hold] 清除缓冲区,输出firstname,lastname - Clearing the buffer, output firstname,lastname CN&#39;LastName,FirstName&#39;的JNDI InvalidnameException - JNDI InvalidnameException for CN 'LastName, FirstName' Hamcrest - Matchers.hasProperty:得到一个奇怪的错误:java.lang.AssertionError:没有属性“firstName”和没有属性“lastName” - Hamcrest - Matchers.hasProperty: getting a weird Error : java.lang.AssertionError: No property "firstName" and No property "lastName" 通过使用Java单击“浏览名称”按钮,将名称导入“名字”和“姓氏”文本字段 - import names into Firstname and lastname textfields by clicking on “browse names” button using java 如何获取LastName,FirstName的字符串并返回FirstInitial.LastName - How to take a String of LastName, FirstName and return FirstInitial.LastName 将一个bean中的firstName,lastName映射为另一个bean中的名字 - Map firstName, lastName in one bean to name in another 是否可以将全名转换为名字和姓氏? - Is it possible to convert full name to firstname and lastname?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM