J'écris un programme en Java qui est censé donner une sortie comme celle-ci:
Mon code compile et j'avais réussi avec tout sauf déterminer quelle voyelle survient le plus. P>
Je ne suis pas sûr de ce que je devrais faire, comptez d'abord combien de fois une voyelle individuelle (comme juste "A") se produit (par opposition au nombre de voyelles totales survenant dans la chaîne). Après avoir trouvé le total de chaque voyelles, je ne sais pas quoi utiliser pour déterminer la voyelle avec la valeur maximale. Une fois que je suis capable d'obtenir ces deux étapes, je ne suis alors pas vraiment sûr de savoir comment produire correctement. Je préférerais accomplir cela avec une déclaration si cependant, je ne sais pas si cela est possible ou non. P>
Toute aide / des conseils sera grandement apprécié, voici le code que j'ai écrit: p>
3 Réponses :
Il peut y avoir plusieurs façons. J'écris l'un d'eux. Vous pouvez l'essayer:
// for number of VOWELS for (int i = 0; i < str.length(); i++) { ch = str.charAt(i); ch = Character.toLowerCase(ch); // is this a vowel if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { vowels++; } // which vowel occurs the most if (ch == 'a') vowelA++; else if (ch == 'e') vowelE++; else if (ch == 'i') vowelI++; else if (ch == 'o') vowelO++; else if (ch == 'u') vowelU++; } maxVowels = Math.max(vowelA, Math.max(vowelE, Math.max(vowelI, Math.max(vowelO, vowelU))));
Merci beaucoup!! cela a aidé énormément. Maintenant, tout ce que j'ai à comprendre, c'est comment écrire correctement mon système System.out.println
Au lieu d'une chaîne Math.MAX CODE> Appels, vous pouvez simplement faire
Collections.max (Vowela, Vowele, Voweli, Vowelo, Vowelu)) Code>.
@Freeish vous avez raison. J'ai déjà mentionné qu'il peut y avoir plusieurs façons. C'est aussi l'un d'entre eux.
Essayez ce code:
{ public static void main (String []args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); int vowels = 0, digits = 0, spaces = 0, upper = 0; String line = str; int max_vowel_count = 0; for(int i = 0; i < line.length(); ++i) { char ch = line.charAt(i); if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { int a_count = line.length() - line.replace("a", "").length(); int e_count = line.length() - line.replace("e", "").length(); int i_count = line.length() - line.replace("i", "").length(); int o_count = line.length() - line.replace("o", "").length(); int u_count = line.length() - line.replace("u", "").length(); max_vowel_count = Math.max(a_count, Math.max(e_count, Math.max(i_count, Math.max(o_count, u_count)))); ++vowels; } else if( ch >= '0' && ch <= '9') { ++digits; } else if (ch >= 'A' && ch <= 'Z'){ ++upper; } else if (ch ==' ') { ++spaces; } } System.out.println("Vowels: " + vowels); System.out.println("Digits: " + digits); System.out.println("Upper Case: " + upper); System.out.println("White spaces: " + spaces); System.out.println("Max Vowel Count "+ max_vowel_count); }
Si vous êtes intéressé par une solution basée sur le flux: (faisant de type voyelle un énumé serait une amélioration) p> p>
Erreur "La méthode de (int, int, int, int, int, int) est indéfinie pour le jeu de type" sur un ensemble statique privé
Ensemble ajouter () code> tous les éléments individuellement.
J'ai ajouté une réponse. Pouvez-vous s'il vous plaît essayer cela et laissez-moi savoir si cela fonctionne pour vous?
@Nitin Bisht merci beaucoup !!! Je vous dois. C'était la partie difficile, maintenant tout ce que j'ai à faire, c'est comprendre la production (ne devrait pas être trop difficile)
Oui, il doit être modifié de nombreuses façons de regarder mieux.