Bonjour ,
voila j'aimerais savoir comment faire pour compter le lettre d'un string sous java..
Merci bien d'avance
Bonjour ,
voila j'aimerais savoir comment faire pour compter le lettre d'un string sous java..
Merci bien d'avance
Pense à utiliser la Javadoc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public int length()
Merci pour votre reponse,
mais la chaine peut comporter des numéros ,de caractères spéciaux, des lettres,...
et je veux compter les lettres cetout
Ah pardon, je n'ai pas compris ce que tu voulais.
Ceci dit, en consultant la Javadoc, tu peux trouver la méthode charAt qui te permet d'extraire un caractère.
Tu n'as plus qu'à parcourir ta chaine et tester le caractère extrait.
j'essayé mais je ne sait comment comparer chaque caractere avec 26 lettre, pour me comprendre voilà notre essai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for (int i=0;i<ch.length();i++) { char x =ch.charAt(i); char xx = x.toLowerCase()
Comme ca, ca devrai marcher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int nbLettre = 0; for (int i = 0; i < ch.length(); i++){ if(!Characters.isDigit(ch.charAt[i])){ nbLettre++; } }
Autre solution:
48 correspond au code du clavier du 0 et 57 du 9.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int nbLettre = 0; char test; for(int i = 0; i < ch.length(); i++){ test = ch.charAt[i]; if((test < 48) && (test > 57){ nbLettre++; } }
Doit y avoir des soluces plus élégante pour faire ça... je suis un peu brute![]()
En y regardant de plus près, y a beaucoup plus simple dans la classe Character, tu devrai regarder la fonction isLetter() qui fait exactement ce que tu veux. Mes solutions consideres les caracteres speciaux comme des lettres et c'est pas ce que tu veux.
Salut,
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //import java.util.regex.Pattern; //import java.util.regex.Matcher; int nbreLettres = 0; String chaine = "Abcd efg 123 hij Zywv é à è ê"; Pattern pattern = Pattern.compile("[a-z[A-Z][é][à][è][ê]]"); Matcher matcher = pattern.matcher(chaine); while(matcher.find()) { nbreLettres++; } System.out.println("\nNombre de lettres: " + nbreLettres);
Dan
Merci bien,
le problème maintenant est résolu
![]()
Marchait aussi en écrivant les lettres directement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int nbLettre = 0; char test; for(int i = 0; i < ch.length(); i++){ test = ch.charAt[i]; if( (test >= 'a' && test <= 'z') || (test >= 'A' && test <= 'Z')) { nbLettre++; } }
Alors, attention, il y a la méthode isLetter(), oui, mais il faut bien vérifier si c'est ce qu'on veut.En y regardant de plus près, y a beaucoup plus simple dans la classe Character, tu devrai regarder la fonction isLetter() qui fait exactement ce que tu veux.
Ça vérifie si c'est une lettre au sens Unicode. Ça inclut les lettres accentuées, et c'est bien, mais aussi les lettres grecques, russes, arabes, hébreuses, le chinois, le japonais, les symboles mathématiques sous forme de lettres...
Bref, passablement plus que de A à Z. Attention à s'en rappeler.
Ca renvoi bien 14, soit le nombre de lettre, neanmoins l'utilisation du pattern/matcher semble bien plus propre (quoique que peut etre plus difficile a saisir)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int nbLettre = 0; String ch = "'Abcd @efg &123 + -_hij Zywv)"; for (int i = 0; i < ch.length(); i++){ if(Character.isLetter(ch.charAt(i))){ nbLettre++; } } System.out.println(nbLettre);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager