java - 尝试替换 editText 字符串开始时出错

标签 java android replace android-edittext

我正在尝试制作一个应用程序,您可以通过 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 语句。

由于我尝试了多种组合,类似的组合会产生一个空的 toast 。 (不记得到底做了什么,但这并不重要,因为它也不正确)

我的代码有什么问题吗?字符串都是数字,但我发现在字符串上进行替换是最简单的,如果您知道更好的实现,请成为我的客人。输入应该是 9 个数字,输出应该是 11 个数字(我用 3876 替换 06,这样我就得到了 2 个额外的数字)。

(我已经搜索过类似的问题,并且进行了一些尝试,但没有成功)

最佳答案

好的,首先,你确定你的字符串 f.ex 是正确的吗? 06xxxxxx 在你的变量中并且不为空?

检查你的字符串

!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);
}

关于java - 尝试替换 editText 字符串开始时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52766633/

相关文章:

regex - Emacs regexp 替换情况

java - 如何获取证书文件(.android\emulator-grpc.cer)?

java - 如何在java spring boot中使用多个join sql查询

java - 如何打开和显示多个文件夹中多个文件的内容?

android - 如何在 Android 中的 EditText 中将光标设置为距开头一些空格?

c# - 如何仅对字符串的一部分进行字符串替换?

Java:更新MySQL表的id

android - 按百分比划分屏幕

java - Android:常量与资源

ANT 使用具有属性的文件替换指定文件中的字符串