Chaines de caractères en java
inpgrenoble38
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
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.
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.
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.
A voir également:
- Chaines de caractères en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères ascii - Guide
- Eclipse java - Télécharger - Langages
4 réponses
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.
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.
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.
Oui c'est bien ça l'idée. Je fais ça mais il y a un souci quelques part. Je vais y arriver.
Salut,
L'utilisation de regex (import java.util.regex.*;) répond au 2 questions
Exemple:
La méthode:
La méthode main(...)
Utilisation depuis une classe externe:
Pour en savoir plus, beaucoup plus:
ftp://ftp-developpez.com/cyberzoide/java/regex.pdf
Cordialement,
Dan
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