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

avec Java Discussion :

compilation avec un String


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut compilation avec un String
    Bonsoir,

    Je n'arrive pas à trouver ces 3 erreurs de compil; si quelqu'un pouvait m'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    class exo103 {
        static boolean egalite (String t, String s) {
    	       boolean res = false;
    	  for (int i=0; i<t.length; i++){
    	      if (t.length == s.length) && (t.charAt(i) == (s.charAt(i))){ 
               boolean res = true;
    	     }else{
    	      boolean res = false;
    		  }
    	 }
    	  return res;
    	  }
     
      public static void main (String [] args) {
        String s1 = "minci";
    	String t1 = "mince";
    	Terminal.ecrireInt ( s1.compareTo(t1));
    	Terminal.ecrireStringln( " " + s1.equals(t1));
    	}
        }
    le compilateur m'indique :

    C:\Documents and Settings\rohmer>javac "C:\Documents and Settings\rohmer\exo103
    java"
    C:\Documents and Settings\rohmer\exo103.java:5: illegal start of expression
    if (t.length == s.length) && (t.charAt(i) == (s.charAt(i))){
    ^
    C:\Documents and Settings\rohmer\exo103.java:5: ';' expected
    if (t.length == s.length) && (t.charAt(i) == (s.charAt(i))){
    ^
    C:\Documents and Settings\rohmer\exo103.java:7: 'else' without 'if'
    }else{
    ^
    3 errors

    merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    	static class exo103 {
    		static boolean egalite (String t, String s) {
    			boolean res = false;
    			for (int i=0; i<t.length(); i++){
    				if (t.length() == s.length() && t.charAt(i) == s.charAt(i)){ 
    					res = true;
    				}else{
    					res = false;
    				}
    			}
    			return res;
    		}
     
    		public static void main (String [] args) {
    			String s1 = "minci";
    			String t1 = "mince";
    			System.out.println(exo103.egalite(s1, t1));
    		}
    	}
    length() est une methode de String et non un attribut (tu confonds avec les tableaux)
    Une méthode ne peut être static dans une classe non static
    Une variable ne peut pas être déclaré plusieurs fois en local.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut RE
    ok, les erreurs ont été corrigées, seulement en recompilant il m'indique qu'une accolade est manquante, pourtant 4 sont ouvertes dans la methode et 4 fermees , donc d'ou viens le blem ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class exo103 {
        static boolean egalite (String t, String s) {   
    	  for (int i=0; i<t.length(); i++){
    	      if (t.length() == s.length()  && t.charAt(i) == s.charAt(i)){ 
               boolean res = true;
    	     }else{
    	      boolean res = false;
    		  }
    	 }
    	  }
     
     
      public static void main (String [] args) {
        String s1 = "minci";
    	String t1 = "mince";
    	Terminal.ecrireInt ( s1.compareTo(t1));
    	Terminal.ecrireStringln( " " + s1.equals(t1));
    	}
        }
     
     
    //erreurs de compilations

    C:\Documents and Settings\rohmer>javac "C:\Documents and Settings\rohmer\exo103.
    java"
    C:\Documents and Settings\rohmer\exo103.java:10: missing return statement
    }
    ^
    1 error

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par stephcast Voir le message
    il m'indique qu'une accolade est manquante, pourtant 4 sont ouvertes dans la methode et 4 fermees , donc d'ou viens le blem ??

    C:\Documents and Settings\rohmer>javac "C:\Documents and Settings\rohmer\exo103.java"
    C:\Documents and Settings\rohmer\exo103.java:10: missing return statement
    }
    ^
    1 error
    On ne te dit pas qu'il manque une accolade, on te dit "missing return statement" : il manque un return.
    Ta méthode egalite, censée retourner un boolean, ne retourne rien du tout !

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Juste comme ça en voyant le code, tu ne dois pas comparer la longueur à chaque fois dans la boucle. Même si la longueur est fixe et que le coût en temps CPU est faible, c'est inutile. Tu peux faire une fois une comparaison en début de méthode, puis entamer la comparaison caractère par caractère.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 52
    Points
    52
    Par défaut
    salut,
    fait attention, tu as une erreur de conception.
    indice:
    fait une comparaison entre:
    tentative
    oximative

    de plus ta fonction egalite tu l'utilise quand ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut RE
    Voici le code qui compile


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class exo103 {
        static boolean egalite (String t, String s) { 
           boolean res = false;	
    	  for (int i=0; i<t.length(); i++){
    	      if (t.length() == s.length()  && t.charAt(i) == s.charAt(i)){ 
                res = true;
    	     }else{
    	        res = false;
    		  }
    	 }
    	 return res;
    	  }
     
     
      public static void main (String [] args) {
        String s1 = "minci";
    	String t1 = "mince";
    	Terminal.ecrireInt ( s1.compareTo(t1));
    	Terminal.ecrireStringln( " " + s1.equals(t1));
    	}
        }

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par stephcast Voir le message
    Voici le code qui compile
    Oui, mais qui ne donnera pas le bon résultat, il ne comparera, dans tous les cas, que la dernière lettre
    Code de comparaison correct et plus simple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    static boolean egalite (String t, String s) { 
          return t.equals(s);
    }
    Traduction, cette méthode ne sert à rien

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    static boolean egalite (String t, String s) { 
        if (t.length() != s.length) return false;
        for (int i=0; i<t.length(); i++){
            if (t.charAt(i)!= s.charAt(i)){ 
                return false;
    	}
         }
         return true;
    }

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

Discussions similaires

  1. Erreur de compilation avec les string et char*
    Par number9 dans le forum C++
    Réponses: 3
    Dernier message: 30/04/2012, 09h58
  2. ereur de compilation avec string
    Par modjo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/06/2009, 15h42
  3. Erreur de compilation avec Ada.Strings.Unbounded
    Par semaj_james dans le forum Ada
    Réponses: 7
    Dernier message: 20/04/2007, 16h28
  4. Erreur de compilation sur std::string avec Dev C++
    Par dada57 dans le forum Dev-C++
    Réponses: 4
    Dernier message: 20/03/2006, 18h06
  5. Erreur compilation avec <string>
    Par seal3 dans le forum SL & STL
    Réponses: 9
    Dernier message: 25/08/2005, 20h41

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