Сначала присоедините 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;
}
Надеюсь, это поможет:)