android中的模式匹配

时间:2012-12-25 19:58:20

标签: android android-edittext

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

String name1 = "abcdefghijklmnopqrstuv";
EditText editText = findVewById(R.id.eText);
String name2 = ediText.getText().toString();

if (name2.equalsIgnoreCase(name1))
{
    //do something
}

问题在于如果它与完整模式匹配则进入if循环,我想检查name2是否匹配前三个字符和三个以上以及用户输入的所有字符应该进入if条件。有没有办法做到这一点。

2 个答案:

答案 0 :(得分:0)

尝试:

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)

答案 1 :(得分:0)

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

如果您将它与list一起使用,那么您应该查看Filter接口。 http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/