2012-12-25 89 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

你可以舉一些例子來適應這種情況問題可以通過這種方式更清楚。 –