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