J'ai un devoir de programmation et une partie de celui-ci me demande de créer un code qui lit une ligne de l'utilisateur et supprime tous les espaces blancs dans cette ligne. La ligne peut être composée d'un mot ou plus.
Ce que j'essaie de faire avec ce programme, c'est d'analyser chaque caractère jusqu'à ce qu'il trouve un espace, puis de sauvegarder cette sous-chaîne en tant que premier jeton, puis de reboucler jusqu'à ce qu'il n'y ait plus de jetons ou jusqu'à la fin de la ligne.
Je continue à obtenir ceci lorsque j'essaie de le compiler :
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:694)
at trim.main(trim.java:23)
Voici le code
import java.util.Scanner ;
import java.lang.Character;
import java.lang.String ;
public class trim
{
public static void main (String[]args)
{
String a ;
String b ;
String c ;
char aChar ;
int i = 0 ;
Scanner scan = new Scanner(System.in);
a = scan.nextLine();
a =a.trim() ;
for ( ; i >= 0 ; i++ )
{
aChar = a.charAt(i) ;
if (aChar != 32)
{
a = a.substring(0,i+1);
}
else
{
b = a.substring(i,160) ;
b= b.trim();
c = c + a ;
c = c.trim() ;
a = b ;
i = 0 ;
}
if (b.equals(null))
{
i = -1 ;
}
}
}
}
Des moyens plus faciles de le faire sont appréciés, mais je veux quand même faire fonctionner ce programme.
et je ne peux pas utiliser les sentinelles dans l'entrée.
Merci à tous pour votre aide,
Je vais utiliser la méthode la plus simple, et je vais lire la javadoc.