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

Résolu
thakiller77 Messages postés 6 Statut Membre -  
thakiller77 Messages postés 6 Statut Membre -
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 60 Statut Membre 4
 
Bonjour,

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

Peut être...
0
thakiller77 Messages postés 6 Statut Membre
 
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 60 Statut Membre 4
 
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 6 Statut Membre
 
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