Justin
Justin

Reputation: 977

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.

Note: received Miss,Mr,Mrs as Salutation values.

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. can anyone provide me the solution for this?

Upvotes: 0

Views: 494

Answers (1)

Mr Nobody
Mr Nobody

Reputation: 154

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:

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

Upvotes: 3

Related Questions