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

Collection et Stream Java Discussion :

Transformer un entier k en un tableau t


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Par défaut Transformer un entier k en un tableau t
    Rebonjour

    Si je veux transformer un int en String, je peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static String intToString (int x) {
       return String.valueOf(x);
    }
    (fonction vue en cours)

    Mais si je veux transformer un entier k en un tableau t (par exemple si int k=1850, le tableau devrait valoir int[] t={1,8,5,0}), comment je pourrais faire (sachant qu'on ne connait pas la valeur de k) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int k;
    int s=0;
    int i=1;
    while (i<=k) {
      s=s+1;
      i=i*10;
    }
    return (s)
    Ce fragment de code donne le nombre de chiffres contenu dans k (4 avec l'exemple ci-dessus), donc le tableau serait de taille (s). Mais comment je pourrais faire pour transformer l'entier en un tableau (comme l'exemple ci-dessus) ?

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    1) "conversion" directe
    Pour remplir un tableau, il faut déjà le créer. Pour créer un tableau, il faut en connaitre la taille. Donc il faut pouvoir déterminer la taille du tableau.

    A) l'approche par String
    On peut convertir le nombre en String (par String.valueOf()), chaîne dont on peut connaitre la taille. Ensuite, reste à parcourir les caractères, à les convertir en nombre pour les mettre dans le tableau

    B) l'approche purement numérique

    Le nombre de chiffres d'un nombre entier peut être déterminé par (int)(Math.log10( nombre ) + 1). Ne fonctionne pas si nombre est égal à 0 (le nombre de chiffre est 1, la c'est facile).

    C) Il existe d'autres approches, dont le but est d'améliorer les performances en général, mais qui sont probablement hors de propos pour ton exercice, la plus classique étant de faire simplement des tests du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ( nombre<10 ) {
       return 1;
    }
    else if ( nombre<100 ) {
       return 2;
    } etc...
    et d'autres encore...

    2) créer une ArrayList<Integer> intérmédiaire, ajouter les nombres un à un dedans, puis créer un tableau à partir de l'ArrayList.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/11/2006, 14h51
  2. Réponses: 1
    Dernier message: 09/10/2006, 17h04
  3. Transformer un entier en minute - TimeSerial
    Par Mariboo dans le forum Access
    Réponses: 2
    Dernier message: 04/08/2006, 10h57
  4. [ALGO] décaler entiers nuls dans un tableau
    Par max__ dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 07/06/2006, 16h22
  5. fonction qui transforme un entier en octet
    Par personne64 dans le forum C
    Réponses: 43
    Dernier message: 10/05/2006, 15h36

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