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
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;
    }
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
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;
 
    }
appel de méthode :
merci pour votre aide.