模式匹配在Android中



我有一个字符串,该字符串包含全名(如果员工)。现在,我希望它与字符串值进行比较。如果超过三个字符匹配,则应显示所有与之匹配的记录。

String name1 = "abcdefghijklmnopqrstuv";
EditText editText = findVewById(R.id.eText);
String name2 = ediText.getText().toString();
if (name2.equalsIgnoreCase(name1))
{
    //do something
}

问题在这里,如果循环与完整模式匹配,我想检查name2是否与前三个字符匹配和三个以上,并且用户输入的所有字符都应该进入if条件。有什么方法可以做到这一点。

您是否尝试使用Regex?http://www.vogella.com/articles/javaregularexpressions/article.html

如果您将其与列表一起使用,则应查看过滤器接口。http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/

尝试:

if (name2.substring(0,3).equalsIgnoreCase(name1) || (name1.lenght > 3 && name2.contains(name1)) || name2.equalsIgnoreCase(name1)) 
{
    //do something
}
  • 第一个条件用于查看第一个3个字符匹配;

name2.substring(0,3).equalsIgnoreCase(name1)

  • 第二个条件用于外观超过3个字符;

(name1.lenght > 3 && name2.contains(name1))

  • 第三个条件是完整的匹配;

name2.equalsIgnoreCase(name1)

最新更新