0
votes

Vérification des contenus de 2 cordes

Je suis nouveau à la programmation Java et je me demandais comment je peux savoir si une certaine chaîne comme "Hello" contient "HLO" (dans cet ordre). J'ai utilisé la méthode .Contains mais cela ne fonctionne que si les lettres sont consécutives. Alors, comment puis-je gérer des cas comme ce qui précède?

PS: Par exemple, si nous demandons si "Ollo" est dans "Hello" False est retourné comme "Hello" ne contient pas "Ollo", et si nous demandons si "Elo" est dans "Bonjour", True est retourné. Merci.


1 commentaires

C'est ce que les expressions régulières ont été créées pour faire: correspondance des motifs


5 Réponses :


0
votes

Vous pouvez itérair sur chaque caractère de la chaîne et si la première lettre correcte est trouvée, vérifiez si les autres caractères suivent.

Une implémentation possible de ceci suivrait: P>

public static boolean containsString(String base, String search) {
    for(int i = 0; i <= (base.length() - search.length()); i ++) {
        if(base.charAt(i) == search.charAt(0)) {
            boolean containsString = true;
            for(int j = 1; j < search.length(); j ++) {
                if(search.charAt(j) != base.charAt(i+j)) {
                    containsString = false;
                }
            }
            if(containsString)
                return true;
        }
    }
    return false;
}


2 commentaires

C'est un commentaire pas une réponse. Veuillez patienter jusqu'à ce que vous ayez suffisamment de réputation, ne répondez pas à Block pour commenter


Désolé j'ai ajouté un exemple de mise en œuvre.



0
votes

Je briserais la chaîne "Search" dans des personnages, et pour chacun de ces caractères, vérifiez son indexof dans la chaîne, à partir de l'index précédemment trouvé: xxx


1 commentaires

Merci beaucoup. C'était beaucoup plus clair pour moi, car je suis débutant.



1
votes

Utilisation de regex, vous pouvez construire une regex du mot à tester, en mettant, en mettant, entre le caractère, une quantité possible de caractères, qui sera remplie avec les manquants

par exemple hlo ->. * h . * l. * l. * o. * xxx


Ceci peut être inlincé xxx < / p>


1 commentaires

Merci beaucoup.



1
votes

C'est l'appel de l'appel de la recherche. Vous pouvez itérer sur la chaîne principale et si la correspondance trouvée augmente l'index de la chaîne de recherche et enfin si tout le caractère de la chaîne de recherche correspond à la chaîne principale, c'est une sous-séquence. XXX


0 commentaires

1
votes

juste, soyez simple! xxx


0 commentaires