Bonjour
Je dois créer deux méthode qui concerne un tableau char de taille fixe, je ne peux pas utiliser ni la classe Arrays, ArrayList ou tout autre librairie.
la première méthode doit insérer un nouveau caractère à la fin du tableau, ma méthode marche bien;
J'ai un problème avec la deuxième méthode qui doit insérer à la position souhaitée par l'utilisateur un nouveau caractère (si l'utilisateur indique position 1 je dois l'insérer à l'indice 0 etc)
Ma méthode insère bien le caractère mais il ne décale pas celui qui est au même indice, je suppose qu'il efface ou écrase.
j'ai crée mon tableau char de taille fixe char[] tab {'A', 'B', 'C', 'D'}
Puis à l'intérieur des méthodes un nouveau tableau de taille supérieur. Pouvez vous m'indiquer ou il est le problème ? en sachant que je dois rester sur du basique sans utiliser librairie etc.
ma première méthode qui marche bien
ma deuxième qui me pose problème
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 public static char[] addChar(char[]tab) { Scanner clavier = new Scanner(System.in); //creation d'un nouveau tableau de taille superieur char[] tabSuite = new char[tab.length + 1]; //copie du contenu de tab vers tabSuite for (int i = 0; i < tab.length; i++) { tabSuite[i] = tab[i]; } //demande du charactere à ajouter System.out.println("Quel caractere voulez vous ajouter?"); char reponse = clavier.nextLine().charAt(0); tabSuite[tabSuite.length-1] = reponse; System.out.println(tabSuite); return tabSuite; }
appel de méthode :
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 public static char[] indiceChar(char[] tab){ Scanner clavier = new Scanner(System.in); //creation d'un nouveau tableau de taille superieur char[] tabSuite = new char[tab.length + 1]; //copie du contenu de tab vers tabSuite for (int i = 0; i < tab.length; i++) { tabSuite[i] = tab[i]; } char caractere = ' '; int indice = 0; System.out.println("caractere à ajouter ?"); caractere = clavier.nextLine().charAt(0); System.out.println("la position?"); indice = Integer.parseInt(clavier.nextLine()); indice = indice-1; for(int i =0; i<tabSuite.length; i++) { tabSuite[indice] = caractere; if (tabSuite[indice] == caractere) for (int j=i; j < tabSuite.length; i++) { tabSuite[i] = tabSuite[i + 1]; i++; } } System.out.println(tabSuite); return tabSuite; }
merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part indiceChar(tab);
Partager