bonjour tout le monde,
je viens de faire un programme qui fonctionne très bien mais j'ai un soucis dans mon main.
je dois demander à l'utilisateur de saisir une chaîne de caractère qui stocke chacun des caractères de cette chaîne dans une pile , qui inverse cette pile puis qui l'affiche.
Toutes mes fonctions fonctionne. Actuellement il stocke que le premier caractère, je pense que cela vient du charAt (0) mais je ne sais pas comment faire car j'ai très peu utiliser le type char.
Pouvez-vous m'aider, je suis sur le programme depuis ce matin.
voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class Cellule { char valeur; Cellule suivant; Cellule(char pvaleur) { valeur = pvaleur; suivant = null; } }
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 import java.util.Scanner; public class pileListe { Cellule tete; pileListe(){ tete = null; } public void Afficher() { Cellule c = tete; while (c != null) { System.out.print(c.valeur + " "); c = c.suivant; } } public void Empiler(char valeur) { Cellule nc = new Cellule(valeur); nc.suivant = this.tete; this.tete = nc; } public boolean estVide (){ if (tete == null)return true; return false; } public char depiler (){ char tmp = tete.valeur; tete = tete.suivant; return tmp; } public void inverser (){ pileListe pl = new pileListe(); Cellule c = this.tete; while(c!= null){ pl.Empiler(c.valeur); c = c.suivant; } this.tete = pl.tete; } public static void main(String[] args){ pileListe lp = new pileListe (); System.out.println("Saisissez une chaine de caractère :"); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); char carac = str.charAt(0); lp.Empiler(carac); lp.Afficher(); System.out.print(("\r\n")); lp.inverser(); lp.Afficher(); } }
Partager