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

Langage Java Discussion :

Générer char[] à partir de Character[]


Sujet :

Langage Java

  1. #1
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut Générer char[] à partir de Character[]
    Bonjour,

    comment le plus simplement possible générer un char[] à partir d'un Character[] et vice-versa ?
    Le cast (char[]) ne fonctionnant pas.

    Merci.

  2. #2
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Salut,

    Méthode .toString().toCharArray() mais c'est peut-être pas super performant...

  3. #3
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Cette méthode fonctionne pour les "char" mais comment faire pour plus généralement convertir un tableau d'un type primitif vers un tableau de son type wrapper et vice-versa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double[] <--> Double[]
    int[] <--> Integer[]
    ...
    ?

    Merci.

  4. #4
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Une méthode qui marche dans tous les cas ? Boucler sur l'un pour remplir l'autre (associé au casting qui va bien).

  5. #5
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Oui mais de manière standardisée par l'API java, par exemple avec une méthode du type "Arrays.copyOf"; mais celle-ci ne permet pas à priori de manipuler les types primitifs mais seulement des classes.

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Non il n'y a rien de cela en standard... mais franchement ce n'est pas vraiment la mort à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	public static char[] duplicate(final Character[] characters) {
    		final int length = characters.length;
    		final char[] chars = new char[length];
    		for (int i=0; i<length; i++) {
    			chars[i] = characters[i].charValue();
    		}
    		return chars;
    	}
    a++

  7. #7
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Merci de vos réponses.

    Le méthode d'adiGuba est parfaite.

    Dommage que les generics ne permettent pas de mettre en relation deux types generics avec une relation du type "T primitiveTypeOf U", ce qui aurait permit de créer une méthode générique basée sur cet exemple.

  8. #8
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Citation Envoyé par seriousme Voir le message
    Merci de vos réponses.

    Le méthode d'adiGuba est parfaite.
    Oui, c'est ce qu'on appelle une "boucle sur l'un pour remplir l'autre"...
    Par contre, comme tu l'as souligné plus haut, il te faudra faire autant de méthodes que tu as de types différents

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

Discussions similaires

  1. [XSD] Générer BDD à partir d'un schéma XSD
    Par n00bi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/05/2012, 16h15
  2. [Word] Générer fichier à partir de template
    Par maxf1 dans le forum Documents
    Réponses: 10
    Dernier message: 20/04/2007, 10h42
  3. Réponses: 2
    Dernier message: 08/04/2007, 22h49
  4. Générer documents à partir de XML
    Par blastobi dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 05/04/2006, 11h37
  5. Réponses: 6
    Dernier message: 03/03/2006, 09h06

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