如何在Android中从全名中拆分名字和姓氏字符串

Int*_*iya 3 string android

我有一个带有全名字EditText段的表单,我想将字符串分解为名字和姓氏字符串.谁可以帮我这个事?我可以知道实现目标的正确方法是什么?

如果用户输入他/她的名字,如A B C.名字将是A&姓氏意志BC

我正在尝试这个:

EditText UNSP =(EditText)findViewById(R.id.UserNameToSIGNUP);
    String UserFullName=UNSP.getText().toString();

    String[] arr=UserFullName.split(" ");

    String fname=arr[0];
    String lname=arr[1];

    Log.d("First name",fname);
    Log.d("last name",lname);



    if(UserFullName.length()==0) {

        Toast.makeText(getApplicationContext(), "Submit Name", Toast.LENGTH_SHORT).show();
    }

    else{

         Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show();


    }

}
Run Code Online (Sandbox Code Playgroud)

Faa*_*hir 22

如果您只需要全名而不使用数组的姓氏和名字,这是我认为最好的方法.名字可以是两个或两个以上的单词,但姓氏总是在现实世界中的一个单词上.

    String name = "Abdul Latif Hussain"
    String lastName = "";
    String firstName= "";
    if(name.split("\\w+").length>1){

       lastName = name.substring(name.lastIndexOf(" ")+1);
       firstName = name.substring(0, name.lastIndexOf(' '));
    }
     else{
       firstName = name;
    }
Run Code Online (Sandbox Code Playgroud)

输出字符串将是:firstName ="Abdul Latif"lastName ="Hussain"

  • 如果它以 jr 结尾? (2认同)

Ani*_*dia 5

对于多个名称,最好将EditTexts每个字段分开。

对于您的实施,如果您可以保证他们以该格式输入它,您可以去:

int firstSpace = UserFullName.indexOf(" "); // detect the first space character
String firstName = UserFullName.substring(0, firstSpace);  // get everything upto the first space character
String lastName = UserFullName.substring(firstSpace).trim(); // get everything after the first space, trimming the spaces off
Run Code Online (Sandbox Code Playgroud)

只需进行一些错误检查以确保格式正确,否则可能会出现异常