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 :

Conversion String vers char


Sujet :

Langage Java

  1. #21
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par ®om
    Pas en java... un int n'est pas castable en boolean...
    Donc, if(n=2) ça ne fait ni vrai ni faux (le n=2, ça vaut 2), ça ne compile pas...
    Ca c'est une bonne nouvelle
    En C c'etait le cas .. et j'ai passe 3 jours a trouver d'ou venais mon erreur (test toujours vrais .....)
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  2. #22
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Citation Envoyé par Clorish
    Je ne depasse rarement les 2 lignes dans les cases
    Je prefere appeler une methode privee qui effectue le traitement lourd.
    C'est plus clair en effet et suffit la pupart du temps.
    L'intérêt des objets Fonctions, c'est qu'on peut bénéficer de l'héritage, de la redéfinition, etc ...

    Citation Envoyé par Clorish
    Note : J'aime bien aussi declarer des constantes pour clarifier l'indexation du case ....
    Moi aussi. On peut ainsi mettre des noms plus explicite. On peut aussi retrouver une même valeur plus facilement (c'est mieux que du recherche/remplacement de chaine lorsqu'on fait du refactoring)

    Citation Envoyé par Clorish
    Petite astuce gratuite :
    il vaut mieux :
    que :
    une mauvaise habitude de langages comme delphi ou une simple etourderie du type :
    genere une erreur de compilation dans le premier cas : "partie gauche non affectable", mais rien dans le 2e. Bien au contraire, l'affectaiton retourne 2 qui est synonyme de vrai (ou faux, je sais jamais ) ....

    Merci pour l'astuce même si je pense qu'elle sert davantage au C ou à Delphi car en Java, tout du moins avec un IDE comme Eclipse qui fait de la compilation incrémentale, tu ne peux pas commettre ce genre d'erreur puisque l'affectation dans un if ne peut se faire que si au final, l'expression du if retourne un booléen.

    • si i est un int, if (i = 2) est donc immédiatement souligné comme une erreur !
    • si b est un booleen, il est vrai que ton astuce fonctionne if (true == b) en place de (b == true) mais finalement ne me sert pas puisque je ferai directement if (b)



    A mon tour, tu m'as fait pensé à une astuce :

    au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (maString.equals("toto"))
    , mieux vaut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ("toto".equals(maString))
    qui évite de contrôler le cas du null :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (maString!=null && maString.equals("toto"))

    Et pour les chaines vide, je préfère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (maStringNonNull.length() > 0)
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (maStringNonNull.equals(""))

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  3. #23
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par benwit
    si b est un booleen, il est vrai que ton astuce fonctionne if (true == b) en place de (b == true) mais finalement ne me sert pas puisque je ferai directement if (b)
    Le seul cas où on peut se tromper en java pour l'affectation / test d'égalité (il faut quand même le vouloir):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    boolean a = ...;
    boolean b = ...;
    if(b=a) {...} // au lieu de if(b==a) {...}

  4. #24
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par benwit
    Et pour les chaines vide, je préfère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (maStringNonNull.length() > 0)
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (maStringNonNull.equals(""))
    Euh, plusieurs remarques.
    La première, c'est qu'il faut tester == 0 et non > 0 (sinon c pour les chaines non vides). (faute de frappe je suppose)
    Ensuite, suite à ta première remarque, autant faire "".equals(maString)

    Enfin, pour tester si une chaine est vide, le plus simple est .isEmpty() (c'est fait pour ça)

  5. #25
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    rom,

    oui, faute de frappe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (maStringNonNull.length() == 0)
    oui aussi pour "".equals(maString) mais pour les chaines non null (c'est pour cela que j'ai écris maStringNonNull), je préfère éviter l'utilisation de chaîne "" dans le code (goût perso).

    Euh, une autre remarque :
    isEmpty est peut être fait pour cela mais pour les Collection ou d'autres mais pas pour les String !!! (faute de précipitation je suppose)

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  6. #26
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par benwit
    Euh, une autre remarque :
    isEmpty est peut être fait pour cela mais pour les Collection ou d'autres mais pas pour les String !!! (faute de précipitation je suppose)
    Citation Envoyé par javadoc
    isEmpty

    public boolean isEmpty()

    Returns true if, and only if, length() is 0.

    Returns:
    true if length() is 0, otherwise false
    Since:
    1.6
    Effectivement je n'avais pas vu que c'était que à partir de java 6 (c'est mon jdk par défaut, donc ma javadoc par défaut, donc je ne fais pas attention)
    Mais bon donc isEmpty() existe maintenant pour les String

  7. #27
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    désolé, je suis tout autant fautif puisque je n'ai pas vérifier que ce que je disais était vrai dans ma version de java (< 1.6)

    Merci donc pour l'info

    D'ailleurs, il serait bien que le site Developpez mette à jour la doc accessible par Javasearch
    Merci.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  8. #28
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par ®om
    Le seul cas où on peut se tromper en java pour l'affectation / test d'égalité (il faut quand même le vouloir):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    boolean a = ...;
    boolean b = ...;
    if(b=a) {...} // au lieu de if(b==a) {...}
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(true=a) {...} // au lieu de if(true==a) {...}
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

Discussions similaires

  1. C++ Builder XE3 Conversion String vers Char *
    Par kurul1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/04/2013, 09h27
  2. [Débutant] Conversion string vers char
    Par sachaaaz dans le forum C#
    Réponses: 6
    Dernier message: 12/03/2012, 11h42
  3. Conversion String vers Byte
    Par zulianithomas dans le forum Delphi
    Réponses: 8
    Dernier message: 07/10/2006, 10h09
  4. conversion string vers int
    Par mathher dans le forum C++
    Réponses: 4
    Dernier message: 14/04/2006, 17h52
  5. [MFC] Problème de conversion CString vers Char *
    Par Darkenshin dans le forum MFC
    Réponses: 10
    Dernier message: 02/12/2005, 14h42

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