J'essaie de faire correspondre exactement le mot-clé AdvanceJava avec la chaîne inputText donnée, mais il exécute à la fois if et else condition, au lieu de ne faire correspondre que le mot-clé AdvanceJava.Comment obtenir le mot-clé exact de la chaîne donnée en utilisant java?
String inputText = ("iwanttoknowrelatedtoAdvancejava").toLowerCase().replaceAll("\\s", "");
String match = "java";
List keywordsList = new ArrayList<>();//where keywordsList{advance,core,programming} -> keywordlist fetch
// from database
Enumeration e = Collections.enumeration(keywordsList);
int size = keywordsList.size();
while (e.hasMoreElements()) {
for (int i = 0; i < size; i++) {
String s1 = (String) keywordsList.get(i);
if (inputText.contains(s1) && inputText.contains(match)) {
System.out.println("Yes we providing " + s1);
} else if (!inputText.contains(s1) && inputText.contains(match)) {
System.out.println("Yes we are working on java");
}
}
break;
}
Merci
simplement ajouter à votre temps un chèque de drapeau et quand vous avez trouvé le mot pour changer le drapeau – Edwin
Je suppose que vous avez à la fois '' java' et advancedjava' dans la liste des mots clés. Donc, vous pouvez le résoudre en utilisant '(?
Wiktor Stribiżew - KeywordList contient uniquement des mots clés "avance, noyau, programmation" dans String s1 comme indiqué dans le code et String match = "java" mot-clé est défini statique, pendant ce temps j'essaie de vérifier si ma chaîne inpuText contient à la fois avance et java mots-clés que le code de si la condition s'exécute bien mais si ma chaîne inpuText ne contient pas de mot-clé d'avance contient uniquement le mot-clé java que ma condition else s'exécute. Mais ça ne marche pas dans ce format. Merci –