Bonjour tous le monde,
Je me permets de tourner vers vous j'ai un problème avec la détection de vide. J'ai un exercice dans lequel, un utilisateur va entrer un caractère pour former un mot de passe. Voilà un exemple.
Donc à chaque fois que il y a deux fois vide est entre il doit former un mot de passe dans notre cas trois mot de passe AbC 13 1991. Pour cela j'ai fais un programme, mais j'ai un problème mon code ne détecte pas les vide . Pouvez-vous me dire où de trouve mon erreur?A
b
C
1
3
1
9
9
1
*
Je vous remercie d'avance.
tuba uba
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 import java.util.*; public class test{ public static void main(String[] args){ String[] tab1; char c; String mot;int Nombre; Scanner demande = new Scanner(System.in); mot = ""; System.out.println("Saisir un nombre natuel positif"); Nombre = demande.nextInt(); demande.nextLine(); tab1 = new String[Nombre]; System.out.println("Saisir une lettre"); c = demande.nextLine().charAt(0); //demande.nextLine(); while(c!='*'){ System.out.println("Saisir une lettre"); c = demande.nextLine().charAt(0); if(c == '\n'){ // détection de premier vide System.out.println("Saisir une lettre"); c = demande.nextLine().charAt(0); if( c == '\n'){ // détection de deuxième vide mot = mot + c; break; } else{ mot = mot + c; } } else{ mot = mot + c; } } System.out.println(mot); } }
Erreur affichée :Saisir un nombre natuel positif
3
Saisir une lettre
A
Saisir une lettre
A
Saisir une lettre
A
Saisir une lettre
A
Saisir une lettre
A
Saisir une lettre
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
at java.base/java.lang.String.charAt(String.java:1512)
at test.main(test.java:21)
Partager