2012-12-25 66 views
0

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

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

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

的问题是在这里进入,如果循环,如果它的全模式匹配,我想检查是否NAME2前三个字符和三个以上,并通过它应该在用户输入的所有字符匹配进入if条件。有没有办法做到这一点。

+1

你的问题含糊不清。请澄清。你指的是哪一个循环? – Ameen

+0

如果您尝试检查字符串的前n个字母,则可以使用startsWith方法[link](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/ String.html#startsWith(java.lang.String) – Ameen

回答

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)

  • 第二条件是用于查找matcing多于3个字符;

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

  • 第三条件为完全匹配;

name2.equalsIgnoreCase(name1)

+0

不工作....我想匹配如果name2包含前3个字符和超过3个字符类似于name1 ... – John

+0

你可以举一些例子来适应这种情况问题可以通过这种方式更清楚。 –