2012-12-25 5 views
0

J'ai une chaîne qui contient le nom complet si l'employé. Maintenant, je veux comparer avec une valeur de chaîne. Si plus de trois caractères correspondent, il doit afficher tous les enregistrements correspondants.Motif correspondant dans android

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

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

Le problème ici est aller en boucle si si elle correspond au modèle complet, je veux vérifier si le nom2 correspond aux trois premiers caractères et plus de trois et tous les caractères saisis par l'utilisateur, il devrait aller dans la condition if. Est-ce qu'il y a un moyen de faire ça.

+1

Votre question est vague. Précisez s'il vous plaît. De quelle boucle parlez-vous? – Ameen

+0

Si vous essayez d'inspecter les n premières lettres d'une chaîne, vous pouvez utiliser la méthode startsWith [link] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/ String.html # startsWith (java.lang.String) – Ameen

Répondre

0

Essayez:

if (name2.substring(0,3).equalsIgnoreCase(name1) || (name1.lenght > 3 && name2.contains(name1)) || name2.equalsIgnoreCase(name1)) 
{ 
    //do something 
} 
  • Première condition est pour la recherche première mise en correspondance de 3 caractères;

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

  • Deuxième condition est pour la recherche matcing plus de 3 caractères;

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

  • Troisième condition est pour correspondance complète;

name2.equalsIgnoreCase(name1)

+0

Ne fonctionne pas .... Je veux faire correspondre si name2 contient le premier 3 caractères et plus de 3 caractères similaires à name1 ... – John

+0

Pouvez-vous donner quelques exemples pour s'adapter à cette condition La question pourrait être plus claire de cette manière. –