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 :

compil string (suite et fin)


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Par défaut compil string (suite et fin)
    Le dernier programme qui me pose probleme avec un string

    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
    23
    24
    25
    26
    27
    28
    29
     
     
    class exo102 {
        static boolean egalite (char[] t, String s) {
               boolean res = false;
    	 for (int i=0; i<t.length; i++){
    	      t[0]= t[0] + 1;
    		  }
    	 for (int i=1; i<10; i++){
    	      s = s + i;
    		  if ( t[0] .equals s(0)){
    		res = true;
    	 }else{
    	    res = false;
    	  }
    	  return res;
    	  }
    	  }
     
      public static void main (String [] args) {
        char [] t1 = {'m','i','n','c','i'};
    	String s1 = "mince";
    	Terminal.ecrireStringln( "" + s1.equals (t1));
    	Terminal.ecrireStringln( " y a t'il les memes caracteres dans le meme ordre " + (egalite(t1,s1)));
    	}
        }
     
     
    //erreurs de compilations
    le compilateur m'indique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    C:\Documents and Settings\rohmer>javac "C:\Documents and Settings\rohmer\exo102.
    java"
    C:\Documents and Settings\rohmer\exo102.java:9: ')' expected
                      if ( t[0] .equals s(0)){
                                       ^
    C:\Documents and Settings\rohmer\exo102.java:9: ';' expected
                      if ( t[0] .equals s(0)){
                                            ^
    C:\Documents and Settings\rohmer\exo102.java:11: 'else' without 'if'
             }else{
              ^
    3 errors
    quesaco ??

  2. #2
    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
    il faut apprendre à lire les message et à revoir ton code. Le message dit qu'il s'attend à une parenthèse fermante après le equals. Ca signifie que quoi que tu aie mis à la place (ici un espace), ca n'a pas sa place là. De fait tu appelle la méthode equals -> tu doit utiliser () pour indiquer que t'appelle une méthode (et pas un champ).

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Par défaut
    Si quelqu'un peut m'aider a ecrire correctement les lignes 5 et 9
    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
    23
    24
    25
    26
    27
    28
    29
     
     
    class exo102 {
        static boolean egalite (char[] t, String s) {
               boolean res = false;
    	 for (int i=0; i<t.length; i++){
    	      t[0]= t[0] + 1;
    		  }
    	 for (int i=1; i<10; i++){
    	      s = s + i;
    		  if ( t[0] .equals (s)){
    		res = true;
    	 }else{
    	    res = false;
    	  }
    	  return res;
    	  }
    	  }
     
      public static void main (String [] args) {
        char [] t1 = {'m','i','n','c','i'};
    	String s1 = "mince";
    	Terminal.ecrireStringln( "" + s1.equals (t1));
    	Terminal.ecrireStringln( " y a t'il les memes caracteres dans le meme ordre " + (egalite(t1,s1)));
    	}
        }
     
     
    //erreurs de compilations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    C:\Documents and Settings\rohmer>javac "C:\Documents and Settings\rohmer\exo102.
    java"
    C:\Documents and Settings\rohmer\exo102.java:5: possible loss of precision
    found   : int
    required: char
                  t[0]= t[0] + 1;
                             ^
    C:\Documents and Settings\rohmer\exo102.java:9: char cannot be dereferenced
                      if ( t[0] .equals (s)){
                                ^
    2 errors

  4. #4
    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
    premier erreur. Tu additionne un char et un int, ca crée un int. Un int prenant plus de place qu'un char, quand tu resauve dans le char, tu pert en précision, ce qui peux poser problème. D'ou l'erreur. En java, quand tu descend en précision, t'es obligé de faire du typecasting exlpicite. Exemple dans ton cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t[0]= (char)(t[0] + 1);

    Pour la deuxième erreur, char est un type de base, pas un objet, il ne posède donc aucun méthode et par voie de conséquence, aucun méthode "equals". D'ailleurs je vois pas ce qu'un méthode equals(String) ferait là.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Par défaut RE
    le programme 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
    22
    23
    24
    25
    26
    27
    28
     
    class exo102 {
        static boolean egalite (char[] t, String s) {
               boolean res = false;
    	 for (int i=0; i<t.length; i++){
    	      t[0]= (char) (t[0] + 1);
    		  }
    	 for (int i=1; i<10; i++){
    	      s = s + i;
    		  if ( t.length == s.length()){
    		res = true;
    	 }else{
    	    res = false;
    	  }
    	  }
    	  return res;
    	 } 
     
      public static void main (String [] args) {
        char [] t1 = {'m','i','n','c','i'};
    	String s1 = "mince";
    	Terminal.ecrireStringln( "" + s1.equals (t1));
    	Terminal.ecrireStringln( " y a t'il les memes caracteres dans le meme ordre " + (egalite(t1,s1)));
    	}
        }
     
     
    //programme ok

  6. #6
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Je ne sais pas trop ce que tu veux faire, mais la ca risque de ne jamais faire ce que tu veux.

    Quelque remarques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (int i=0; i<t.length; i++){
          t[0]= (char) (t[0] + 1);
    }
    à quoi ca sert de faire une boucle sur tous les éléments du tableau juste pour faire ca ?? tu pouvais faire direct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t[0] = (char) f.length;
    ca reviens exactement à la même chose.

    d'apres ce que tu veux faire je ne crois pas que ton code puisse marcher. je te propose plustot celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    static boolean egalite (char[] t, String s) {
           boolean res = true;
     
           if (t.length == s.length) 
               for (int i=0; i< t.length; i++)
    	      if ( t[i] != s.chartAt(i)){
    		res = false;
    	        break;
                  } 
     
           return res;
    }

  7. #7
    Membre expérimenté Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Par défaut
    Citation Envoyé par stephcast Voir le message
    le programme 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
    22
    23
    24
    25
    26
    27
    28
     
    class exo102 {
        static boolean egalite (char[] t, String s) {
               boolean res = false;
    	 for (int i=0; i<t.length; i++){
    	      t[0]= (char) (t[0] + 1);
    		  }
    	 for (int i=1; i<10; i++){
    	      s = s + i;
    		  if ( t.length == s.length()){
    		res = true;
    	 }else{
    	    res = false;
    	  }
    	  }
    	  return res;
    	 } 
     
      public static void main (String [] args) {
        char [] t1 = {'m','i','n','c','i'};
    	String s1 = "mince";
    	Terminal.ecrireStringln( "" + s1.equals (t1));
    	Terminal.ecrireStringln( " y a t'il les memes caracteres dans le meme ordre " + (egalite(t1,s1)));
    	}
        }
     
     
    //programme ok
    Ton algorithme n'est pas bon,tu n'as pas besoin de 2 boucle for, 1 seule suffit.
    De plus pour parcourrir ton "t" tu t'y prends pas comme il faut mais faire, pour parcourrir un tableau tu peu faire comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for (int i=0 ;i<t.length;i++){
     System.out.println(t[i]);
    }
    //ou comme ca:
    int i=0;
    while(i<t.length){
     system.out.println(t[i]);
     i++;
    }
    Et pour un String tu peu faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(int j=0; j<s.length();j++){
     System.out.println(s.charAt(j));
    }
    Au niveau de l'ago, tu peu commencer par tester si t et s on la meme longueur.
    Ensuite il te faut "simplement", par exemple prendre successivement les elements de "t" et le comparer a l'element de "s" correspondant.

    Evidement je te donne pas la solution, mais avec ca tu devrai arriver à trouver.
    Si tu as la javadoc, tu devrai regarder la classe String et notament un constructeur avec pour parametre char[] et la fonction compareto...
    bon là j'arrete je t en ai trop dis...
    Bonne chance

    Edit: Sovo, arrete de lui donner la solution clef en main tu l'aide pas! et en plus ton algo est faux

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/09/2012, 19h54
  2. problème de conversion avec dateadd - suite et fin
    Par Bourezak dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 31/01/2008, 13h57
  3. Tableaux de string (suite)
    Par Claude URBAN dans le forum C++
    Réponses: 3
    Dernier message: 09/08/2006, 11h13
  4. Réponses: 4
    Dernier message: 22/02/2006, 14h11
  5. [affichage d'une image] suite et fin
    Par mavina dans le forum 2D
    Réponses: 3
    Dernier message: 31/12/2005, 00h15

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