Compter le nombre de répétition d'un caractère dans une chaine

Résolu/Fermé
thakiller77 Messages postés 5 Date d'inscription dimanche 31 mars 2013 Statut Membre Dernière intervention 24 novembre 2013 - 25 avril 2013 à 09:48
thakiller77 Messages postés 5 Date d'inscription dimanche 31 mars 2013 Statut Membre Dernière intervention 24 novembre 2013 - 25 avril 2013 à 10:48
Bonjour,

Je travail sur cette fonction depuis un moment et je n'arrive pas à obtenir de résultat. Mon but est de compter le nombre de points dans une chaine de ce type : 75.062.075.058.064.0

A chaque fois que j'éxéute le programme, l'ordinateur m'affiche : "Il y a 1 point". Si je change la valeur dans la variable : "int nbpoint = 16" (16 étant un nombre aléatoire), l'ordinateur m'affichera "Il y a 16 point"

Voici la fonction :

int compterpoint (String texte,int nblettre)
{ String point = ".";
int premierpoint = texte.indexOf(point);
int nbpoint = 1;
for (int j= premierpoint ; j >= nblettre-2; nbpoint ++ )
{String extraittext = texte.substring (j+1);
j = extraittext.indexOf(point,j+1);
}
return nbpoint;}

// indexOf permet de déterminer la position de "point" dans "extraittext" à partir de la position "j+1" (ici)

// substring permet d'extraire une chaine de "texte" à partir de la position "j+1" (ici) jusq'à la fin
A voir également:

4 réponses

jeremux Messages postés 58 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 30 mai 2013 4
25 avril 2013 à 10:07
Bonjour,

...
for (int j= premierpoint ; j <= nblettre-2; nbpoint ++ )
...

Peut être...
0
thakiller77 Messages postés 5 Date d'inscription dimanche 31 mars 2013 Statut Membre Dernière intervention 24 novembre 2013
25 avril 2013 à 10:23
J'ai essayé et in ne se passe rien, c'est à dire que le programme tourne sans afficher de résultat. J'ai l'impression qu'il tourne en boucle et qu'il ne se passe rien. J'ai même réduit la chaîne pour voir si ce n'était pas juste un problème de performance de l'ordi mais toujours la même chose....

Est-ce que vous aurez une autre idée...? :)
0
jeremux Messages postés 58 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 30 mai 2013 4
25 avril 2013 à 10:33
Comme ça vite fait, peut être:

public static int compterpoint (String texte,int nblettre)
{
String point = ".";
int premierpoint = texte.indexOf(point);
int nbpoint = 0;

for (int i= 0 ; i < nblettre ; i++)
{
if (texte.charAt(i)=='.')
{
nbpoint++;
}
}

return nbpoint;
}

0
thakiller77 Messages postés 5 Date d'inscription dimanche 31 mars 2013 Statut Membre Dernière intervention 24 novembre 2013
25 avril 2013 à 10:48
Génial !! il suffit de mettre i < nblettre-2 et ça marche parfaitement ! Etant débutant dans java merci beaucoup de m'avoir aidé !!!

Bonne journée :)
0