begin process at 2012 02 12 14:11:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

*** comtage d'un groupe de caractèeres dans une chaîne.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

*** comtage d'un groupe de caractèeres dans une chaîne.

mardi 23 juin 2009 à 19:08:21 | *** comtage d'un groupe de caractèeres dans une chaîne.

JMBeaucoup


Bonsoir,
je veux compter combien j'ai de $20 dans une chaîne mais
j'ai un problème de taille mais je ne vois pas pourquoi car normalement ça devrai rentrer :)
si quelqu'un a une petite idée...
merci.

voici mon message d'erreur:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 32
    at java.lang.String.charAt(Unknown Source)
    at test.test1(test.java:32)
    at test.main(test.java:7)

et bien sur, voici mon code:
public class test
{

  public static void main(String[] args)
  {
test.test1();
  }
  public static void test1(){
  
    String chaine = "CMD$20Consigne$20En$20En$20Cours";
    int longueurChaine = chaine.length();
    System.out.println("longueurChaine:  "+longueurChaine);

    int caractDejaLu = 0;
    int $20 = 0;
    int quatre = 4;
    char caract1 = 0;
    char caract2 = 0;
    char caract3 = 0;
    char $='$';
    char deux='2';
    char zero='0';
  
      while(caractDejaLu<longueurChaine){
    
        caract1 = chaine.charAt(caractDejaLu);
        System.out.println("La variable caract1 à pour valeur:  "+caract1);
        caract2 = chaine.charAt(caractDejaLu+1);
        System.out.println("La variable caract2 à pour valeur:  "+caract2);
        caract3 = chaine.charAt(caractDejaLu+2);
        System.out.println("La variable caract3 à pour valeur:  "+caract3);
      
        caractDejaLu++;
      
        if((caract1==$) && (caract2==deux) && (caract3==zero)){
        
          $20++;
          System.out.println("La variable $20 à pour valeur:  "+$20);

        }
      }
      System.out.println("On est apres le while.");

      if($20==quatre){
      System.out.println("La variable $20 à pour valeur:  "+$20);
      System.out.println("On poursuit avec le code...");
      }
      else{
        System.out.println("On passe la série de test.");
      }
  }
}
mercredi 24 juin 2009 à 08:18:38 | Re : *** comtage d'un groupe de caractèeres dans une chaîne.

danimo

Réponse acceptée !
Salut,

Tout d'abord (dans la boucle) tu lis 3 caractères, mais tu additionnes seulement 1 à caractDejaLu (caractDejaLu++; )  alors qu'íl faudrait faire +3 (caractDejaLu+=3; )
Ensuite étant donné qu'avant le $20 suivant tu n'as que 2 caractères alors que tu vas en lire 3, tu laisse passer le $20 suivant...

Je vais te conseiller d'utiliser (par exemple)   int index indexOf(String str)  str sera "$20",
S'il n'y a pas (ou plus) de "$20" index = -1. Ce sera la condition de ta boucle:  while(ind != -1){
Mais tu dois travailler avec une copie de ta chaîne car par la suite tu vas devoir supprimer ce qu'il y a du début jusqu'au $20 (compris) que tu as trouvé pour rechercher le "$20" et tant qu'à faire ne pas détruire la chaîne initiale.
Comment: en utilisant String substring(int indice début, int indice fin). Dans notre cas ,int indice fin n'est pas nécessaire puisque qu'on garde ce qu'il reste jusqu'à la fin de la chaîne.

Regardes ces 2 méthodes et n'hésites pas à poser des questions si besoin est.

Cordialement,

...\ Dan /...

Ps,
Tu peux également regarder la classe StringTokenizer...

mercredi 24 juin 2009 à 13:43:41 | Re : *** comtage d'un groupe de caractèeres dans une chaîne.

JMBeaucoup

merci Dan,
c'est vrai que ton histoire fait tout de suite plus pro ;)

Voici ma solution:

String chaine = "CMD$20CMD$20Consigne$20En$20En$20Cours";
String str = "$20";  
int count = 0;
int index = chaine.indexOf(str);
while (index != -1) {
  count++;
index = chaine.indexOf(str, index+1);
}

System.out.println("Nbre d'occurrences de '$20' : " +count);
mercredi 24 juin 2009 à 18:01:48 | Re : *** comtage d'un groupe de caractèeres dans une chaîne.

danimo

Salut,

C'est même mieux sans substring !!!

...\ Dan /...



Cette discussion est classée dans : system, test, out, println, caractdejalu


Répondre à ce message

Sujets en rapport avec ce message

[java]creation de fichier ... [ par suber600 ] voila je dois creer un fichier composé d entier et de double. le fichier ne doit pas etre lisible par un editeur de texte comment dois je faire ? je v Besoin d'aide programme etudiants, assez simple [ par The Waxy Man ] J'ai re-besoin d'aide !!!ERREUR:C:\jdk1.3\bin\javaw.exe -classpath "C:\jdk1.3\jre\lib\rt.jar;C:\DATA\2ti\Eleves\Englebert" Englebertjava.lang.NullPoi prob avec vector et fichier [ par bruno270579 ] je dois faire un projet en java et j'ai une colle je dois faire un objet Client qui contiendrai les champs suivant String nom, prenom, adresse; et un URGENT!!! Problème avec applets et jdbc [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a free et jdbc [URGENT !!!] [ par kerlutinhoec ] bien le bonjour !Bon, moi, je suis emmerdé par jdbc.J'utilise le driver org.gjt.mm.mysql.Driver pour essayer de me co a une bdd type MySQL.Alors le pr free et jdbc [URGENT !!!] [ par kerlutinhoec ] bien le bonjour !Bon, moi, je suis emmerdé par jdbc.J'utilise le driver org.gjt.mm.mysql.Driver pour essayer de me co a une bdd type MySQL.Alors le pr Enregistrer le source d'une page web a partir de son url [ par YavaDeus ] Alors voila le probleme, je souhaite enregistrer dans un fichier, le code d'une page html(a partir de son url) , de facon a pouvoir recuperer des info


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales