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

C# Discussion :

Uniquement les premiers string d'une chaîne


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Points : 111
    Points
    111
    Par défaut Uniquement les premiers string d'une chaîne
    Bonjour,

    J'ai une chaîne de caractère (exemple : "Voiture de location").
    J'aimerais obtenir uniquement les 5 premiers caractères, MAIS........ si ma chaîne ne fait que 4 caractères (exemple : "vide"), alors là, j'ai un message d'erreur qui me dit que la longueur est incorrect.

    Voici ma méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine.ToString().Substring(0, 5)
    Merci pour votre aide.

  2. #2
    Membre averti
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Points : 364
    Points
    364
    Par défaut
    Tu pourrais par exemple tester la taille de la chaine avant de faire ton substring()

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (chaine.Length() > 5)
       chaine.ToString().Substring(0, 5)
    ρs¥

  3. #3
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Moi j'aurais fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try{
      lab.text = chaine.ToString().Substring(0, 5);
    }catch{
      lab.text = chaine.ToString();
    }
    Apres je ne sais pas ce qui est le plus propre, ou ce qui a les meilleurs perf. Histoire de relancer la question

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    si tu veux un mot et pas compter les espaces, il faut faire un split avant!

    sinon pour répondre à ta question il suffit de capturer l'exception ArgumentOutOfRangeException, dans ton catch tu mets le message d'erreur que tu veux. Sinon avec un If ca marche aussi, mais dans les langages contemporains/évènementiels, on évite de faire des if, on laisse plutôt venir l'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                try
                {
                    "toto".ToString().Split(' ')[0].Substring(0, 5);
                }
                catch (ArgumentOutOfRangeException ex)
                {
                    MessageBox.Show("erreur");
                }
                catch (IndexOutOfRangeException exIndex)
                {
                    MessageBox.Show("erreur arg");
                }
    xian21 si y a un message qui averti l'utilisateur.... on s'en cogne un peu des perfs, en l'occurrence le plus rapide c'est de ne pas tester inutilement avec un If...

  5. #5
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Points : 111
    Points
    111
    Par défaut
    Et voici le verdict :

    Je choisi la réponse de "JACADI".
    C'est celle qui me donne le plus de souplesse avec ce que je veux faire.

    Merci à vous pour vos réponses... et au prochain verdict !!

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 16/01/2011, 22h16
  2. Supprimer les premiers caractères d'une chaîne
    Par supers dans le forum Word
    Réponses: 4
    Dernier message: 21/08/2009, 10h04
  3. Afficher les premiers caractères d'une chaîne
    Par ZIED dans le forum Langage
    Réponses: 2
    Dernier message: 13/08/2009, 23h36
  4. Réponses: 5
    Dernier message: 20/02/2007, 17h16
  5. Supprimer les premiers 0 dans une chaîne
    Par supersmoos dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2007, 11h28

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