|
|
|
|
Bonjour,
Voila j'ai un problème avec l'un des exercices que je doit faire. Je met l'énoncé pour faire plus simple :
Écrivez une méthode qui prend en paramètre deux chaînes de caractères et qui retourne true si la deuxième
chaîne se retrouve complètement dans la première mais sans nécessairement que les caractères s'y
retrouvent de façon consécutive. Exemple : La méthode appliquée à
"Le manteau est en vison" et "maison" retournera true,
"Rien ne sert de courir, il faut partir à point" et "Rester" retournera true
"Plus on mange, moins on a faim" et "repas" retournera false.
Voici le code que j'ai écrit :
static boolean contient(String msg, String msg2)
{
boolean contient = false;
for (int i = 0; i < msg2.length() - 1; i++)
{
if (msg.indexOf(msg2.charAt(0)) != -1)
{
if (msg.indexOf(msg2.charAt(i)) < msg.indexOf(msg2.charAt(i + 1)))
{
contient = true;
}
}
}
return contient;
}
Répondre à Evil Jajuka
|
Essaye ça et oublie toujours pas de corriger mes erreurs éventuelles de syntaxes lol
static boolean contient(String msg, String msg2)
{
boolean contenu_dans = true;
boolean trouve_lettre = false;
int j = 0;
int dernier_index = -1;
for (int i = 0; i < msg2.length() - 1; i++)
{
j = 0;
trouve_lettre = false;
for (int j = 0; j < msg.length() - 1; j++)
{
if (msg2.charAt(i) == msg.charAt(j))
{
if (j > dernier_index) {
trouve_lettre = true;
dernier_index = j;
}
}
}
if (trouve_lettre == false)
{
contenu_dans = false;
}
}
return contenu_dans;
}
Psyk |
static boolean contient(String msg, String msg2)
{
boolean contenu_dans = true;
boolean trouve_lettre = false;
int j = 0;
int dernier_index = -1;
for (int i = 0; i < msg2.length() - 1; i++)
{
j = 0;
trouve_lettre = false;
for (int j = 0; j < msg.length() - 1; j++)
{
if (msg2.charAt(i) == msg.charAt(j))
{
if (j > dernier_index) {
trouve_lettre = true;
dernier_index = j;
break;
}
}
}
if (trouve_lettre == false)
{
contenu_dans = false;
}
}
return contenu_dans;
}
Rajouter un break dans la deuxième boucle et ça marche ! Excuse moi Psyk |