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 :

Création d'un String


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Par défaut Création d'un String
    Voilà mon problème,

    Je veux créer un string de 30 caractères de la manière suivante:
    J'ai en entrée 2 strings nom et prénom de taille n et p(entre 0 et 40)

    je veux caser le nom dans les 20 premiers caractères du string final(en complétant avec des espaces) et le prénom dans le reste(toujours en complétant avec des espaces)

    C'est facile mais disons que je m'y suis pris de maniere un peu barbare avec des boucles à la c...noix. Est ce que quelqu'un connait une méthode simple et élégante avec des substring et autres?

    Amicalement.

  2. #2
    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,


    La solution est toute simple en utilisant le format à-la-printf() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String r = String.format("%-20.20s%-20.20s", n, p);
    Où %-20.20s signifie : une chaine de caractère avec 20 caractères minimum et 20 caractères maximum aligné à gauche (grace au signe moins " - ").

    Si les termes font moins de 20 caractères ils seront complétés par des espaces.
    S'il font plus de 20 caractères ils seront tronqué...


    a++

  3. #3
    Membre confirmé Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Par défaut
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public String CreateNom(String nom, String prenom)
    {
        String retour = "";
        retour  = String.format("%-20.20s%-10.10s", nom, prenom);
        return retour;
    }
    si je lance ca me retournera
    "Bredele Seb "? avec 13 espaces apres bredele et 7 apres seb.

    Ya t'il un moyen de metter le tout en majuscule aussi au passage?

    Enfin j'ai essayé de trouver la doc concernant cette methode dans java.txt mais j'ai rien trouvé... une piste?

    Merci

  4. #4
    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
    Citation Envoyé par coshibe Voir le message
    ca me retournera
    "Bredele Seb "? avec 13 espaces apres bredele et 7 apres seb.
    Oui (il suffit de tester )

    Citation Envoyé par coshibe Voir le message
    Ya t'il un moyen de metter le tout en majuscule aussi au passage?
    Il suffit de mettre le S en majuscule : %-20.20S%-10.10S"

    A noter que dans ce cas là il serait peut-être préférable de passer la Locale (cela pourrait avoir une influence)

    Citation Envoyé par coshibe Voir le message
    Enfin j'ai essayé de trouver la doc concernant cette methode dans java.txt mais j'ai rien trouvé... une piste?
    La javadoc de String.format() renvoit vers la syntaxe de la classe [url=http://javasearch.developpez.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax]java.util.Formatter[/quote] qui se charge de tout cela.


    a++

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par coshibe Voir le message
    Ya t'il un moyen de metter le tout en majuscule aussi au passage?

    Enfin j'ai essayé de trouver la doc concernant cette methode dans java.txt mais j'ai rien trouvé... une piste?
    C'est la doc de la classe Formatter, qu'il faut regarder (comme indiqué dans la doc de String.format(), soit dit en passant).

    On y trouve le paragraphe "Conversions" dans lequel il est dit que %S est la version uppercase de %s.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Par défaut
    Citation Envoyé par JavaDoc
    Since : 1.5


    Nos serveurs n'en sont qu'à la 1.4

    Je vais aller wine chez mon chef pour la peine.


    En tout cas merci pour vos indications!

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui, enfin, d'accord c'est la lose, mais c'est quand même pas bien compliqué de faire ce genre de choses avec un StringBuffer.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par coshibe Voir le message


    Nos serveurs n'en sont qu'à la 1.4
    Profite en pour lui rappeler qu'il n'y a plus de mise jour sur la 1.4 depuis octobre 2008, qu'il n'y a plus de mises à jours sur la 1.5 depuis octobre 2009 et qu'il 'y aura plus de mise à jour de java 6 à partir de juillet de cette année. Vous êtes à la merci des moindres nouveau bug découvert (Notamment celui de la virgule flottante)

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

Discussions similaires

  1. Création du type string
    Par hloudghi dans le forum Débuter
    Réponses: 2
    Dernier message: 28/11/2013, 01h51
  2. Création d'une String avec passage de paramètre
    Par beegees dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/10/2010, 08h36
  3. Réponses: 1
    Dernier message: 25/10/2009, 20h26
  4. Problème de création d'un String avec des caractères
    Par titi42 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 11/09/2009, 16h19
  5. création d'un ficher CSV a partir d'un chaine String
    Par edouard21 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 27/03/2006, 16h46

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