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 :

predecesseur et successeur avec caractères


Sujet :

Langage Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 991
    Par défaut predecesseur et successeur avec caractères
    Bonjour,

    Dans mon cours java , j'ai appris que l'opérateur successeur ++ et l'opérateur predecesseur -- peuvent fonctionner avec des caractères unicodes.
    J'ai fait ce test sans succès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class test_predecesseur_unicode{
     
    	public static void main(String[]args){
    		String a = "a" ;
    		System.out.println(a);
    		System.out.println(a++);
     
     
    }// fin de classe
    Coment les opérateurs succésseur et prédécesseur peuvent ils alors fonctionner avec java?


    Autre question sur un autre sujet :si je travaille sur une machine qui a un processeur 32 bits et que les données de type double en java sont sur 64 bits, y a t-il un problème?



    Merci de votre aide.

    Cordialement.

    Nathalie

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par harbonne Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class test_predecesseur_unicode{
     
    	public static void main(String[]args){
    		String a = "a" ;
    		System.out.println(a);
    		System.out.println(a++);
     
     
    }// fin de classe
    C'est pas plutôt avec un char a = 'a' que tu veux essayer.

    Et même si ça marchait avec un String, ton affichage serait mauvais à cause de l'erreur classique des débutants avec l'opérateur ++.
    System.out.println(a++); affiche a et incrémente seulement ensuite a.

    Il faut jamais appeler une fonction avec un machin++ dedans, c'est mal.

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		char a = 'a';
    		System.err.println(a);
    		System.err.println(a++);
    		System.err.println(a);
    affiche :

  3. #3
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Ça marche en Java mais également dans n'importe quel autre langage. Il faut bien comprendre qu'un char n'est jamais qu'un numéro auquel on applique lors de l'affichage une transformation en caractère en se basant sur les codes normalisés de l'ASCII. Par exemple, dans la norme ASCII a vaut 97, b vaut 98 etc.. Donc tu peux très bien écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println((char)98);
    pour afficher un b.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 991
    Par défaut mettre a++ dans une fonction
    Bonjour et merci beaucoup de votre aide à tous.

    Pouvez-vous me dire pourquoi c'est "mal" d'appeler une fonction avec un ++ dedans.
    Merci à vous.
    Cordialement.
    Nathalie

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par harbonne Voir le message
    Pouvez-vous me dire pourquoi c'est "mal" d'appeler une fonction avec un ++ dedans.
    Ca amène à des erreurs comme tu viens de le faire.
    Ca rend plus difficile la lecture. Ca rend moins maintenable le code.

    Genre difficile à lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(mafonction(a++, i, ++c));
    Le must, c'est dans des langages à pointeurs comme en C++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    char *strncpy(char *dest, const char *source, size_t count)
    {
      char *start = dest;
     
      while (count && (*dest++ = *source++)) count--;
      if (count) while (--count) *dest++ = '\0';
      return start;
    }
    Que l'on pourrait traduire par un truc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     while (count && (dest[i++] = source[i++])) count--;
      if (count) while (--count) source[i++] = '\0';
      return start;

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 991
    Par défaut RESOLU fonction avec successeur
    Merci à toi de cette précision.
    Cordialement.
    Nathalie

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

Discussions similaires

  1. [RegEx] chaîne de caractères avec caractères spéciaux
    Par Kerod dans le forum Langage
    Réponses: 9
    Dernier message: 25/12/2005, 02h40
  2. [JEditorPane] Problème avec caractère accentué
    Par scifire dans le forum Composants
    Réponses: 6
    Dernier message: 14/09/2005, 15h58
  3. Gros bug SQL Server avec caractère "²"
    Par Oluha dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 26/05/2005, 15h31
  4. Réponses: 3
    Dernier message: 11/10/2004, 18h26
  5. Chaines avec caractères accentués dans interbase
    Par Tsimplice dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2004, 18h12

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