首页 > 解决方案 > 如何验证一个字符串是否包含另一个字符串?

问题描述

所以我有这个方法,如果验证正确,它会返回 true:

private boolean validation() {
    String emailStr = etEmail.getText().toString();
    if (emailStr.trim().isEmpty()) {
        etEmail.setError(getResources().getString(R.string.eroareEmpty));
        return false;
    } else if (!emailStr.endsWith("stud.ase.ro") && emailStr.length() <= 15) {
        etEmail.setError(getResources().getString(R.string.eroareEmail));
        return false;
    }

    return true;
}

我想验证我在 EditText etEmail 中输入的文本是否包含(仅在字符串的末尾)“stud.ase.ro”,整个字符串不仅仅是它的一部分。简而言之,我想验证电子邮件是否以“stud.ase.ro”结尾而没有其他内容。

目前我的方法返回 true,即使我输入了一些不寻常的东西,比如“helllllllllllooo@stud”,它不应该这样做。

标签: javaandroidstring

解决方案


要匹配字符串的末尾,请使用该String.endsWith方法。

if (str.endWiths("hello123@stud")) {

  //bla bla
}

您可能想改进您的代码。你用对了EditText吗?

  1. EditText.getText()不返回null
  2. 您应该为重复的代码创建一个局部变量来访问里面的文本EditTextString emailStr = etEmail.getText().toString()

它将大大提高可读性。


推荐阅读