如何拆分字符串并发送到另一个字段

时间:2015-08-11 09:55:00

标签: java android

在我的应用程序中,我有三个用户名(Name,FirstName,LastName)的编辑文本。如果用户在名称字段中输入名称(John Basker),则表示John自动发送到firstname,Basker发送到lastname。

我希望在名称字段填满时发生此过程。怎么做?

我的代码:

 arrowDown.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String personal_name = name.getText().toString();
                String [] array=personal_name.split("\\s+");
                firstname.setText(String.valueOf(array[0]));
                lastname.setText(String.valueOf(array[1]));
    }
});

logcat的:

我在这一行收到错误:firstname.setText(String.valueOf(array[0]));

  

java.lang.ArrayIndexOutOfBoundsException:length = 1;索引= 1

2 个答案:

答案 0 :(得分:1)

                 //get value from editText
  String str=editText.getText().toString();
                //str = "firstname lastname";
  String[] splited = str.split("\\s+");    
                //split by  space
  splited[0] is firstname
  splited[1] is lastname

               //then it set to other  editText
 if(splited[0]) != null && !splited[0]).isEmpty())
{
 editText1.setText(String.valueOf(splited[0]));
 }
if(splited[1]) != null && !splited[1]).isEmpty())
{
 editText2.setText(String.valueOf(splited[1]));
}

答案 1 :(得分:0)

使用以下代码检测空格

Pattern pattern = Pattern.compile("\\s");
Matcher matcher = pattern.matcher(s);
boolean found = matcher.find();

还使用SUBSTRING函数将字符串拆分为两个字符串a和b 例如:JOHN PATRIK然后substring(0,3)