Bonjour à tous,

Dans le cadre d'un travail scolaire (je ne vous le cache pas ), je dois réaliser un programme qui "normalise" une suite de caractères entrée par l'utilisateur. Par exemple :

"Ceci est la ligne entrée par l'utilisateur" doit devenir :

"Ceci est la ligne
entrée par l'utili-
sateur."

J'ai donc créé une méthode format qui va "nettoyer" le tableau (je précise qu'on nous interdit de travailler avec les String et que celui ci est donc converti en un tableau de caractères). Cette méthode appelle donc la méthode cleanSpaces qui enlève les (possibles) espaces inutiles au début de la ligne entrée par l'utilisateur et qui s'arrange pour n'avoir plus qu'un espace entre chaque mot.
Par exemple:

"___Ceci____est_une__pomme." (les _ sont des espaces) doit devenir :
"Ceci_est_une_pomme."

Voici donc ma 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
32
33
34
35
36
37
38
/**
        Méthode qui nettoye le texte pour n'avoir qu'un espace entre chaque mot. Elle retire également tous les
        espaces au début du tableau.
**/	 
 
 
public static char[] cleanSpaces(char text[])
{
	int i = 0;
	int x = 0;
	char[] text2 = new char[text.length];
 
	while (text[i] == ' ')
	{
		i++;
	}
	while (i<text.length)
	{
		if(text[i] != ' ')
		{
			text2[x]=text[i];
			i++;
			x++;
		}
		else if(text[i]==' ');
		{
			text2[x]=text[i];
			i++;
			x++;
			while(text[i] == ' ')
			{
				i++;
			}
		}
	}
	text=text2;
	return text;
}
Mais lors de la compilation :

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 36
at tp3.cleanSpaces(tp3.java:41)
at tp3.format(tp3.java:9)
at tp3.main(tp3.java:84)

J'en déduis donc (d'après les explications de mes assistants) que l'indice i qui avance dans le tableau avance à un moment ou un autre "trop loin" et atteint un endroit du tableau qui n'existe pas...
Malheureusement, j'ai beau chercher, je ne trouve pas l'erreur.

D'avance merci pour votre aide et vos conseils,

Mithandir