Faire un tabMax d'un tableau de char

Fermé
kaldax73 Messages postés 71 Date d'inscription mardi 30 juin 2015 Statut Membre Dernière intervention 14 mai 2020 - Modifié le 13 avril 2020 à 19:21
kaldax73 Messages postés 71 Date d'inscription mardi 30 juin 2015 Statut Membre Dernière intervention 14 mai 2020 - 15 avril 2020 à 13:24
Bonjour, comme dit dans le titre je voudrais savoir s'il était possible de faire une fonction max d'un tableau de char ? En gros y'a une tableau de char {s,s,s,s,t,t,k,k} et la fonction m'affiche que la lettre qui apparaît le plus dans le tableau est 's' j'ai fait un bout de code comme ici :

String  str = "salusss les copains";
char [] str2 = str.toCharArray(); ://donc je transforme le String en tableau de char pour que ce soit plus simple
char elem = Maxtab(str2); :// j'ai déjà fait une fonction max tab qui retourne le maximum du tableau mais moi je voudrais un maxtab qui affiche comme j'ai dit en haut la lettre qui apparaît le plus pour un tableau de char
A voir également:

2 réponses

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
13 avril 2020 à 20:43
Bonjour,

Pour y arriver tu devrais passer par une Map qui compte les occurrences de chaque valeur.

Tu peux regarder ce code par exemple :
https://mkyong.com/java8/java-8-collectors-groupingby-and-mapping-example

Ensuite, il faudra parcourir cette Map pour trouver la valeur qui a le plus grand nombre d'occurrences.
0
kaldax73 Messages postés 71 Date d'inscription mardi 30 juin 2015 Statut Membre Dernière intervention 14 mai 2020 3
13 avril 2020 à 21:19
Merci de ta réponse!
Il n'y a pas moyen de faire ça sans rien importer ?
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
13 avril 2020 à 22:19
Sans jamais rien importer du tout (c'est à dire se limiter à java.lang) ça va rapidement être compliqué de coder tout ce qu'il te faut. Java est fourni avec une large bibliothèque de classes qu'il faut apprendre à utiliser.

Dans ton cas, je ne vois pas comment tu peux faire sans au moins importer java.util.HashMap (ou java.util.TreeMap au choix).
0
kaldax73 Messages postés 71 Date d'inscription mardi 30 juin 2015 Statut Membre Dernière intervention 14 mai 2020 3 > KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024
13 avril 2020 à 23:13
Je dis ça parce que dans l'exercice, j'en suis à un point ou je ne connais pas encore les différentes bibliothèques donc pour moi c'est qu'on pouvait le faire sans rien importer
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020 > kaldax73 Messages postés 71 Date d'inscription mardi 30 juin 2015 Statut Membre Dernière intervention 14 mai 2020
14 avril 2020 à 11:12
Pour un exercice tu peux bien sûr tout refaire, mais c'est vraiment purement scolaire, dans la réalité on ne s’embêterait jamais à faire comme ça...

Tu peux par exemple, utiliser deux tableaux
char[] dejaVus
et
int[] occurences
.
Avec ton tableau d'exemple
[s,a,l,u,s,s,s, ,l,e,s, ,c,o,p,a,i,n,s]
ton traitement devrait produire :
dejaVus    = [s,a,l,u, ,e,c,o,p,i,n]
occurences = [6,2,2,1,2,1,1,1,1,1,1]

La recherche du maximum (6) correspondra donc à la lettre
s
recherchée.
0
kaldax73 Messages postés 71 Date d'inscription mardi 30 juin 2015 Statut Membre Dernière intervention 14 mai 2020 3 > KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024
15 avril 2020 à 13:24
Ah oui je vois...
Exactement! Mais ce que je n'arrive pas à faire c'est compter le nombre de char , je ne sais pas comment faire ...
0