【问题标题】:Error while trying to replace editText string start尝试替换 editText 字符串开始时出错
【发布时间】:2019-03-16 22:10:36
【问题描述】:

我正在尝试制作一个应用程序,您可以在其中通过 editText 组件获取输入并将其放入字符串中,如下所示:

number = findViewById(R.id.editText2); newNumber = number.getText().toString();

现在我想要的是在满足某个条件时替换字符串 start,如下所示:

                if (number.getText().toString().substring(0, 1).equals("0")) {

                    newNumber = newNumber.replaceFirst("06", "3876");

                        Log.d("TAG", newNumber);
}

我收到一条错误消息,提示 StringIndexIsOutOfBounds index=2 length=0

我也试过这样:

 if (newNumber.startsWith("06")) {
                    newNumber = newNumber.replaceFirst("06", "3876");

                        Log.d("TAG", newNumber);
                        //Toast.makeText(MainActivity.this, newNumber, Toast.LENGTH_SHORT).show();
                    }
    else {
...
}

当我运行这个查询时,我得到了 else 语句。

由于我尝试了多种组合,因此类似的组合会产生空吐司。 (不记得具体做了什么,但也没关系,因为它也不对)

我的代码有什么问题?字符串都是数字,但我发现对字符串进行替换是最容易的,如果你知道更好的实现,请成为我的客人。输入应该是 9 个数字,输出应该是 11 个数字(我将 06 替换为 3876,所以我在那里得到了 2 个额外的数字)。

(我已经搜索过类似的问题,一些尝试是娱乐,但没有成功)

【问题讨论】:

    标签: java android replace android-edittext


    【解决方案1】:

    好的,首先,你确定你有正确的字符串 f.ex。 06xxxxxx 在你的 var 中并且不为空?

    检查你的字符串

    !number.getText().toString().isEmpty()

    不如试试这个:

    EditText number = (EditText) findViewById(R.id.editText2);
    String newNumber = number.getText().toString();
    
    f(!number.getText().toString().isEmpty()){
            Log.d("TAG", newNumber);
            newNumber = newNumber.replaceFirst("06", "3876");
            Log.d("TAG", newNumber);
    }
    

    【讨论】:

    • 整个问题是我在 onCreate 中定义了我的 EditText 和 String 而不是 onClick 方法。一旦我这样做了,它就解决了。感谢 Joschy 和 @piotr.wittchen
    【解决方案2】:

    如果您得到StringIndexIsOutOfBounds index=2 length=0,则表示您的TextView 没有任何预定义或用户提供的值。

    为避免此错误,您应该像这样验证String 是否为空:

    if (!number.getText().toString().isEmpty() 
        && number.getText().toString().substring(0, 1).equals("0")) {
        // your code goes here...
    }
    

    请记住,只要TextView 为空,此条件就不会满足。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      相关资源
      最近更新 更多