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 :

trouve présence d'un caractère dans une chaine


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut trouve présence d'un caractère dans une chaine
    rebonjour
    je ecris ce programme suivante
    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
    import java.util.Scanner;
    public class moi
    {
     public static void main (String [] args)
      {
    	String chaine="Je suis en vacances, oubliez moi un peu";
    	int nombreDEfois=0;
    	System.out.print("Entrez un caractère :");
    	Scanner sc=new.Scanner(System.in);
    	char c=sc.nextChar
    	for(int i=0; i<chaine.length(); i++)
    	{
    		if(chaine.charAt(i)==c)
    		nombreDEfois++;
    	}
    	System.out.println("On trouve " +c+ "," +nombreDEfois+ " fois dans: " +"\""+chaine+"\"");
      }
    }
    en compilant il donne error message suivante
    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    Syntax error on token "new", invalid Expression
    Syntax error, insert ";" to complete LocalVariableDeclarationStatement

    at moi.main(moi.java:8)
    aidez moi s'il vous plaît

  2. #2
    Membre chevronné
    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
    Points : 1 788
    Points
    1 788
    Par défaut
    ton probleme viens de la

    Citation Envoyé par domxaline Voir le message
    Scanner sc=new.Scanner(System.in);
    remplace cette ligne par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	Scanner sc=new Scanner(System.in);

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    il a manqué un point virgule, maintenant j'ai nouvelle error

    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    Syntax error on token "new", invalid Expression

    at moi.main(moi.java:9)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    Par défaut
    Bonjour,

    1 - Ta classe devrait se nommer Moi et non pas moi
    2 - La ligne 9 c'est Scanner sc=new.Scanner(System.in); et la réponse t'a été donnée juste au-dessus.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    j'ai l'ai corrigé
    maintenant la ligne suivant est souligné
    message
    sc.nextChar cannot be resolved or is not a field

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    Par défaut
    Les messages d'erreur Java ont ceci de sympa qu'ils sont à peu près explicites.

    cannot be resolved --> ça ressemble à une variable mais elle n'est déclarée nulle part
    is not a field --> ça n'est pas un attribut de ta classe

    et pour cause, c'est une tentative d'appel de méthode, sauf qu'il te manque les parenthèses.

  7. #7
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Donne tout le code s'il te plais.
    edit rah j'avais meme pas vu le manque de parenthese :/

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    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
    import java.util.Scanner;
    public class moi
    {
     public static void main (String [] args)
      {
    	String chaine="Je suis en vacances, oubliez moi un peu";
    	int nombreDEfois=0;
    	System.out.print("Entrez un caractère :");
    	Scanner sc=new Scanner(System.in);
    	char c=sc.nextChar;
    	for(int i=0; i<chaine.length(); i++)
    	{
    		if(chaine.charAt(i)==c)
    		nombreDEfois++;
    	}
    	System.out.println("On trouve " +c+ "," +nombreDEfois+ " fois dans: " +"\""+chaine+"\"");
      }
    }

  9. #9
    Membre chevronné
    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
    Points : 1 788
    Points
    1 788
    Par défaut
    remplace
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char c=sc.nextChar();
    //car c'est une fonction

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    après avoir corrigé,j'ai l'erreur suivante
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method nextChar() is undefined for the type Scanner

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    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
    import java.util.Scanner;
    public class moi
    { 
    public static void main (String [] args) 
    { 
    String chaine="Je suis en vacances, oubliez moi un peu"; 
    int nombreDEfois=0; 
    System.out.print("Entrez un caractère :"); 
    Scanner sc=new Scanner(System.in); 
    String c=sc.nextLine(); 
    for(int i=0; i<chaine.length(); i++) 
    { 
    if(chaine.charAt(i)==c) 
    nombreDEfois++; 
    } 
    System.out.println("On trouve " +c+ "," +nombreDEfois+ " fois dans: " +"\""+chaine+"\""); 
    } 
    }
    en compilant j'ai un message suivant
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    Incompatible operand types char and String

    la ligne suivant est souligné
    if(chaine.charAt(i)==c)
    avec le message
    incompatible operante types char and string

  12. #12
    Membre habitué Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 171
    Points
    171
    Par défaut
    Salut

    Ton erreur vient du faire que tu ne peux pas comparer une String avec un char, en tout cas pas comme ça

    Pour ton exemple, remplace cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(chaine.charAt(i)==c)
    Par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (chaine.substring(i, i+1).equals(c))
    par exemple

    J'ai remplacé charAt par substring, car charAt renvoie un char, et c'est pour ça que ça te renvoie ton erreur substring renvoie une chaine, et te permet donc de faire la comparaison.
    Ensuite, la méthode equals permet de comparer les valeurs des deux objets String.
    Car si tu fais un == sur tes deux strings, il va comparer les adresse des objets au lieu de comparer leurs valeurs


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

Discussions similaires

  1. Tester la présence d'un caractère dans une chaine
    Par sebinator dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/11/2007, 14h23
  2. [VS.net] Vérifier le présence d'un caractère dans une chaine
    Par arnolem dans le forum Windows Forms
    Réponses: 15
    Dernier message: 10/09/2005, 15h19
  3. Recuper un caractère dans une chaine. (novice)
    Par Thierry8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/08/2005, 09h07
  4. Réponses: 8
    Dernier message: 08/06/2004, 01h29

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