Android中的SubString选择

时间:2019-01-02 08:06:32

标签: android android-edittext

是否有一种方法可以在按下#EditText中按下空格键时捕获文本?预先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

首先将addTextChangedListener附加到您的edittext上,然后调用与以下特定条件匹配的方法:

EditText editText = (EditText)findViewById(R.id.editText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    // TODO Auto-generated method stub
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

    try {
    String capturedString = getText(s);
    } catch (Exception e) {
    e.printStackTrace();
    }
} 
});

每次将新字符添加到capturedString字段时,以上代码都会尝试填充edittext

现在编写另一个函数getText(),如下所示:

public String getText(String s) {
    String startChar = "#";
    String endChar   = " ";
    String output = getStringBetweenTwoChars(s, startChar, endChar);
    System.out.println(output);
}

此方法将匹配为#space提供的字符串。如果找到,它将返回捕获的字符串,如果找不到,则会抛出错误(此错误将在以上代码的catch块中捕获)

最后,编写以下函数,该函数将接收一个字符序列和两个字符,并将该字符序列与提供的字符进行匹配,并返回它们之间的字符串:

public String getStringBetweenTwoChars(String input, String startChar, String endChar) {
try {
    int start = input.indexOf(startChar);
    if (start != -1) {
        int end = input.indexOf(endChar, start + startChar.length());
        if (end != -1) {
            return input.substring(start + startChar.length(), end);
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}
return input;
}

希望这会有所帮助:)