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 :

Probleme inscription chaine de caractère


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut Probleme inscription chaine de caractère
    Bonjour voilà je réalise un petit programme Java pour m'amuser mais je n'arrive pas à effectuer certaine chose . Voici mon code :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    import java.util.*;
     
    public class Contact{
     
    	public static void main(String[]args){
     
    	menu();
     
    	String []tab;//declaration d'un tableau Ã* une dimension string
    	tab=new String[100]; //crétion d'un tableau 100 string (l'indice est compris entre 0 et 100) 
     
    	Scanner scanner=new Scanner(System.in);
    	String choix=scanner.next();
    		while(choix.compareToIgnoreCase("q")!=0){
    			if(choix.compareTo("1")==0){
    			consulter();
    			}
    			else if(choix.compareTo("2")==0){
     
    			ajouter();
    			}
    			else if(choix.compareTo("3")==0){
    			//supprimer();
    			}
    			else if(choix.compareTo("4")==0){
    			//modifier();
    			}
    			else if(choix.compareTo("5")==0){
    			//rechercher();
    			}
    			else{
    			//quitter();
    			}	
     
    			menu();
    			choix=scanner.next();
    		}
    	}
     
    	public static void menu(){
    		System.out.println("1-Consulter la liste des contacts");
    		System.out.println("2-Ajouter un nouveau contact");
    		System.out.println("3-Supprimer un nouveau contact");
    		System.out.println("4-Modifier un contact");
    		System.out.println("5-Rechercher contact");
    		System.out.println("6-Quitter");
    	}
     
     
     
    	public static void ajouter(){
    	System.out.println("Veuillez saisir le nom , le prénom et le numéro du contact\n");
    		Scanner scanner=new Scanner(System.in);
    		String tab=scanner.next();
     
    	}
     
    	public static void consulter(){
    	System.out.println("Voici la liste des contacts\n");
    		for(int i=0;i<100;i++){
    		System.out.println(tab[i]);
    		}
    	}
    C'est un programme où je gère mes contacts téléphoniques mais je beug sur la partie ajouter contact et puis consulter (décris sous le même nom au niveau des procédures)

  2. #2
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    utilise choix.equals("....") plutot que choix.compareTo("....")==0, c'est plus lisible. ensuite, il se passe quoi comme problème? Au premier abord je vois pas d'erreur, mis à part que je ne créerais pas plusieurs instances de scanner en ce qui me concerne.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut Re
    Le probleme est que je ne sais pas si la procédure de saisie du contact est bonne puisque la procédure de consultation des contacts ne fonctionne pas . Sinon je préfère utiliser compareTo car choix.equals("....") je ne l'ai pas appris .Mais cela m'intéresse , en quoi sa change ? pourquoi plus lisible ?

  4. #4
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    compareTo permet de classer les chaines de caractères suivant l'ordre alphabétique. Equals (méthode présente sur TOUT les objets) permet de savoir si deux objets sont équivalent. Bien que si compareTo retourne 0 cela signifie que equals() vaut true, la première forme n'a pas pour but de tester l'équivalence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // lequel est les plus lisible?
    if(choix.compareTo("1")==0)
    // ou
    if(choix.equals("1")){
    Ensuite, pour ton problème, disons qu'à part lire le clavier, ta méthode ajouter ne fait rien (j'avais pas fait gaffe). Un fois que t'as récupérer ce qui est tappé au clavier, il faut l'ajouter dans ton tableau, au bon endroit.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut Re
    Le mode ajouter est bon maintenant mais le probleme est que lorsque je consulte il me met que le premier mot sachant que je saisie le nom , le prenom , et le numéro de tel .En clair il ne prend pas en compte l'espace entre chaque élément.
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    import java.util.*;
     
    public class Contact{
     
    	public static void main(String[]args){
     
    	menu();
     
    	String []tab=new String[4];//declaration d'un tableau à une dimension string
    	int nbcontact=0;
     
    	Scanner scanner=new Scanner(System.in);
    	String choix=scanner.next();
    		while(choix.compareToIgnoreCase("q")!=0){
    			if(choix.compareTo("1")==0){
    			consulter(tab);
    			}
    			else if(choix.compareTo("2")==0){
     
    			nbcontact=ajouter(tab,nbcontact);
    			}
    			else if(choix.compareTo("3")==0){
    			//supprimer();
    			}
    			else if(choix.compareTo("4")==0){
    			//modifier();
    			}
    			else if(choix.compareTo("5")==0){
    			//rechercher();
    			}
    			else{
    			//quitter();
    			}	
     
    			menu();
    			choix=scanner.next();
    		}
    	}
     
    	public static void menu(){
    		System.out.println("\n\n**MENU**\n\n");
    		System.out.println("1-Consulter la liste des contacts");
    		System.out.println("2-Ajouter un nouveau contact");
    		System.out.println("3-Supprimer un nouveau contact");
    		System.out.println("4-Modifier un contact");
    		System.out.println("5-Rechercher contact");
    		System.out.println("6-Quitter");
    	}
     
     
     
    	public static int ajouter(String []tab,int nbcontact){
     
    	System.out.println("Veuillez saisir le nom , le prénom et le numéro du contact\n");
    		Scanner scanner=new Scanner(System.in);
    		tab[nbcontact]=scanner.next();
    		nbcontact++;
    		return (nbcontact) ;
     
    	}
     
    	public static void consulter(String []tab){
    	System.out.println("Voici la liste des contacts\n");
    		for(int i=0;i<tab.length;i++){
    		System.out.println(tab[i]);
    		}
    	}
     
    	/*public static void supprimer(){
    	System.out.println("Quel contact voulez-vous supprimer ?");
    		for(int i=0;i<tab.length;i++){
    		System.out.println(tab[i]);
     
    		}*/
    	/*public static void rechercher(){
    	System.out.println("Recherche de tous les contacts ayant un numéro de PORTABLE : ");
    		for(int i=0;i<100;i++){	
    			if(tab[i].matches(".* 06.*"){
    			System.out.println(tab[i]);
    			}	
    		}*/
     
    }

  6. #6
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    pour lire des lignes complètes au clavier, n'utilise pas scanner (qui sépare autour des espace et n'a pas la notion de ligne) et préfère l'utilisation d'un BufferedReader:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in));
     
     
    // exemple de lecture clavier
    int entierLu = Integer.parseInt(clavier.readLine());
    String ligneLue = clavier.readLine();

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

Discussions similaires

  1. [MySQL] Probleme affichage chaine de caractères
    Par Jarod51 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 28/09/2011, 19h51
  2. probleme de chaine de caractère
    Par H-bil dans le forum C#
    Réponses: 3
    Dernier message: 21/06/2007, 01h16
  3. [Tableaux] Probleme de chaine de caractères
    Par toddy_101 dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2007, 17h01
  4. problemes de chaines de caractères
    Par Commodore dans le forum Langage
    Réponses: 2
    Dernier message: 10/07/2006, 16h30
  5. Probleme de chaine de caractéres et Insert
    Par Revan012 dans le forum ASP
    Réponses: 5
    Dernier message: 21/06/2004, 10h28

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