Rechercher : dans
Par :

Chaines de caractères en java

Dernière réponse le 28 oct 2009 à 06:26:38 inpgrenoble38, le 27 oct 2009 à 12:22:25 
 Signaler ce message aux modérateurs

Bonjour,

Je suis débutant en java et j'ai une petite question à vous poser.
Je dois récupérer le nombre de caractères 'a' saisis au clavier. et en convertissant les char en int j'ai pu faire
la première question.

char tmpchar = Character.toChars(carcour)[0];
System.out.println(tmpchar + " <-> " + achar);
    if(carcour == achar){
 	nba ++;
}


la 2e question:
En fait je souhaite maintenant récupérer le nombre de fois de 'le' saisis au clavier.
exemple: si je saisis "le nul en java", il doit m'afficher -->> 1.

comment puis-je faire?parce que en utilisant la même chose qu'à la première question je n'y arrive pas.
Merci à vous de m'éclairer.

Bonne journée.
Configuration: Windows XP
Firefox 3.5.3

Meilleures réponses pour « chaines de caractères en java » dans :
Javascript - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...
Javascript - Concaténation de chaînes de caractères VoirLe terme "concaténer" signifie joindre deux chaînes bout à bout pour n'en former qu'une seule. Dans la plupart des langages tels que PHP, la concaténation se fait avec le caractère ".". En javascript, il suffit d'utiliser le caractère plus (+) ou...
Oracle - Echappement de caractères spéciaux VoirPour certaines requêtes SQL, nous avons besoin de rechercher des chaînes de caractères contenant des caractères spéciaux tels que '%' Dans l'exemple suivant, qui est faux, le besoin est de trouver les enregistrements contenant au milieu le...
Liste simplement chaînée VoirLISTES SIMPLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes chaînées A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Javascript - L'objet String VoirLes particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation...

1

Pacorbanix, le 27 oct 2009 à 12:57:19

Une manière de faire : à chaque fois que tu trouves "l" (le premier caractère de "le"), tu fais une boucle qui va tester si les caractères qui suivent sont bien ceux de la chaîne que tu cherches.

Dasn ton exemple : il trouve le premier l, et vérifie qu'après c'est bien un "e", et c'est le cas -> on ajoute 1 au nombre de "le" trouvés. Ensuite il trouve un autre "l" (celui de nul), il vérifie le caractère après, mais ce n'est pas "e", donc il ne fait rien. Et ensuite il n'y a plus de "l" et la boucle principale s'arrete. -> le résultat final est 1.

Répondre à Pacorbanix

2

inpgrenoble38, le 27 oct 2009 à 14:30:08

Merci pour ta réponse.

Oui c'est bien ça l'idée. Je fais ça mais il y a un souci quelques part. Je vais y arriver.

Répondre à inpgrenoble38

3

Pacorbanix, le 27 oct 2009 à 16:57:22

Une bonne manière est de poser l'algorithme en "mots" sur papier, ça peut aider.

Répondre à Pacorbanix

4

 danimo, le 28 oct 2009 à 06:26:38

Salut,

L'utilisation de regex (import java.util.regex.*;) répond au 2 questions

Exemple:


   import java.util.regex.*;
   
    public class LaClasse
   {
      private static Pattern pattern;
      private static Matcher matcher;
      private static int nbreDeFois;
      private static String info = "";


La méthode:
  
       public static void regEx(String chaine, String motif) // trouver motif dans chaine
      {
         nbreDeFois = 0;
      
         info = "\nRECHERCHE DU MOTIF \""  + motif + "\""  + " dans la cha\u00eene:\n"
            + "\"" + chaine + "\"\n";
         pattern = Pattern.compile(motif);
         matcher = pattern.matcher(chaine);

         while(matcher.find())
         {
            nbreDeFois++;
            //System.out.println("nbreDeFois: " + nbreDeFois);
         }
         info+= "\n\"" + motif + "\"" + " existe " + nbreDeFois + " fois dans \"" + chaine + "\"\n";
      	
         javax.swing.JOptionPane.showMessageDialog(null,info);
         
      }


La méthode main(...)
       public static void main(String args[])
      {
       
         String chaine = "le nul en Java";
         String motif = "le"; // ce motif est le plus simple d'utilisation
                                // puisqu'il s'agit d'une chaîne littérale
 // appel de la méthode:
         regEx(chaine, motif); //résultat 1

 chaine = "le nul en Java et les nuls";
         motif = "le";
         regEx(chaine, motif); // résultat 2
         
      	// si on ne veut pas le de les nuls:
         chaine = "le nul en Java et les nuls";
         motif = "le ";
         regEx(chaine, motif); //résultat 1
         
         chaine = "Le nul en Java et les nuls";
         motif = "le";
         regEx(chaine, motif); //résultat 1
         
         chaine = "le nul en Java et les nuls";
         motif = ".e"; // ici, le point est un caractère spécial (Méta caractère)
                            // qui signifie que l'on veut recercher "e" précédé
                            // d'UN caractère quelconque (UN puisqu'il n'y a qu'UN point
         regEx(chaine, motif);
         // dans ce cas on trouvera 4 .e
      	// .e de le
      	// .e de en précédé d'un espace
      	// .e de et précédé d'un espace
      	// .e de les précédé d'un espace

//concernant la 1ère question

         chaine = "le nul en Java";
         motif = "a"; 
         regEx(chaine, motif);  Résultat 2
      	.........
      	..........
      	}


Utilisation depuis une classe externe:

String chaine "le nul en java";
String motif = "a";
LaClasse.regEx(chaine, motif);


Pour en savoir plus, beaucoup plus:

ftp://ftp-developpez.com/cyberzoide/java/regex.pdf

Cordialement,

Dan

Répondre à danimo