由于 afterTextChanged,我的应用程序因输入字段中的退格键而崩溃,我该如何处理此代码的退格键

My apps crash due to hit backspace in inputfield due to afterTextChanged , how can i handle backspace for this code

public void afterTextChanged(Editable editable) {

    String f = y.getText().toString();

    String[] data2 = f.split(" ");

    if (f.substring(f.length() - 1).equals(" ")) {
        StringBuilder M = new StringBuilder();
        String z = y.getText().toString();
        String[] data1 = z.split(" ");
        {
            String last = order(data1[data1.length - 1].toString());

            data1[data1.length - 1] = last.toString();

            for (int i = 0; i < data1.length; i++) {

                M.append(data1[i]);
                M.append(" ");

            }

            y.removeTextChangedListener(this);
            y.setText(M.toString());
            y.setSelection(y.getText().length());
            y.addTextChangedListener(this);

        }
    }
}

这是我的 afterchangetext 的代码,当检测到 space 时,它会将前一个单词更改为其标准形式,但是当用户写一些东西并试图删除或回击时space然后应用程序由于这种方法崩溃请告诉我如何处理回来space

编辑文本为空时崩溃,因为在空字符串上使用子字符串方法。

if (f.substring(f.length() - 1).equals(" ")) {

这样替换:

if (f.length() > 0 && f.substring(f.length() - 1).equals(" ")) {

如果有问题请告诉我。