IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Séparer et compter voyelle


Sujet :

avec Java

  1. #1
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut Séparer et compter voyelle
    Bonjour,

    Pour une fois j'arrive à finir un exercice presque tout seul, mais mon exercice ne gère pas les majuscules et les minuscules à fois. Si quelqu'un avait une piste..
    De plus je voudrais que vous me disiez si ce que j'ai écrit est logique et propre

    .Encore merci à tous les contributeurs

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    package fr.apside.POO.exercice4;
     
    import java.util.Scanner;
     
    public class Chaine2 {
    	Scanner scan = new Scanner(System.in);
     
    	public String str;
     
     
    	public Chaine2() {
     
    	}
     
    	public int compterVoyelle(){
    		int compteur= 0;
    		System.out.println("veuillez saisir une chaine");
    		String str=scan.nextLine();
    		System.out.println("Vous avez saisi : "+str);
     
    		char [] voyelle= {'a','e','y','o','i','u'};
    		for(int i=0;i<str.length();i++){
    			for(int j=0;j<voyelle.length;j++){
    				if(str.charAt(i)==voyelle[j]){
    					System.out.println(str.charAt(i));
    					compteur++;
    				}
    			}
    		}
    		return compteur++;
    	}
    }
    Oliv

    Solution trouvée avec la methode toLowerCase()

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Une autre solution était d'ajouter les voyelles majuscules à la liste. Cela dit, en théorie passer d'abord le texte en minuscules évite de doubler la taille du tableau à vérifier, ce qui rend la vérification plus rapide.

    Ton code est plutôt logique, oui.

    Pour la propreté, on préférera éviter une boucle imbriquée comme ça. On définirait plutôt une méthode boolean estUneVoyalle(char c) qu'on appellera sur chaque lettre du texte. C'est beaucoup plus clair.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    Ok, merci pour ces indications supplémentaires et bon we !

    Olivier

  4. #4
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    les voyelles accentuées (de é à ÿ) ne comptent pas?
    (je me demande si la ruse absolue ne serait pas de comparer avec un Collator avec une petite transformation en chaîne: par ex. en français que donne la comparaison entre "a" et "à" ?... à tester -désolé j'ai pas fait le test-)
    edit: j'ai vérifié et ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // code jshell
    import java.text.* ;
    Collator coltr= Collator.getInstance(Locale.FRENCH);
    coltr.setStrength(Collator.PRIMARY)
    coltr.compare("é","e")
    $11 ==> 0
    donc un split de la chaîne et une boucle de comparaison avec le tableau des voyelles de base ...
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compter le nombre de voyelles dans un vecteur
    Par milennissa dans le forum Pascal
    Réponses: 3
    Dernier message: 14/04/2017, 20h27
  2. [PHP 5.3] Compter le nombre de voyelles
    Par Invité dans le forum Langage
    Réponses: 20
    Dernier message: 03/11/2010, 10h36
  3. requete pour compter voyelles
    Par bb5477 dans le forum Oracle
    Réponses: 5
    Dernier message: 29/11/2007, 14h20
  4. Réponses: 9
    Dernier message: 22/11/2005, 21h20
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo