0

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

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

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

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

4

2 回答 2

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)

于 2012-12-25T20:04:58.450 回答
0

您是否尝试过使用正则表达式?http://www.vogella.com/articles/JavaRegularExpressions/article.html

如果您将它与列表一起使用,那么您应该查看过滤器界面。http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/

于 2012-12-25T20:08:38.577 回答