|
|
|
|
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 ++;
}
Configuration: Windows XP Firefox 3.5.3
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.
|
Salut,
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 |