Problème d'affichage
ArmandAs_1998
Messages postés
17
Statut
Membre
-
ArmandAs_1998 Messages postés 17 Statut Membre -
ArmandAs_1998 Messages postés 17 Statut Membre -
Bonjour,
J'ai besoin de déterminer un palindrome sans tenir compte des espaces/virgules/deux-points.
Je ne sais pas où se situe mon erreur ici (voir fin).
Palindrome ?TU L AS TROP ECRASE CESAR CE PORT SALUT
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 39
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at TD4_ex5.main(TD4_ex5.java:28)
J'ai besoin de déterminer un palindrome sans tenir compte des espaces/virgules/deux-points.
Je ne sais pas où se situe mon erreur ici (voir fin).
public static void main(String []args) {
String ch;
Scanner s = new Scanner(System.in);
System.out.print("Palindrome ?");
ch= s.nextLine();
int i=0, j=ch.length()-1;
while (i!=j) {
while (ch.charAt(i)==' ' || ch.charAt(i)==',' || ch.charAt(i)==':')
i++;
while (ch.charAt(j)==' ' || ch.charAt(j)==',' || ch.charAt(j)==':')
j--;
if (ch.charAt(i)==ch.charAt(j)) {
i++;
j--;
if (i==j) {
System.out.println(true);
break;
}
} else {
System.out.println(false);
break;
}
}
}
Palindrome ?TU L AS TROP ECRASE CESAR CE PORT SALUT
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 39
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at TD4_ex5.main(TD4_ex5.java:28)
A voir également:
- Problème d'affichage
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Problème affichage page internet google chrome - Forum Téléphones & tablettes Android
- Pinterest problème affichage ✓ - Forum Réseaux sociaux
2 réponses
Bonjour,
Le distributeur automatique de réponses est en panne....
Donnez-vous au moins la peine de poser une question, en faisant une phrase !
Le distributeur automatique de réponses est en panne....
Donnez-vous au moins la peine de poser une question, en faisant une phrase !
Bonjour,
La condition d'arrêt de ta boucle c'est de tomber sur le caractère du milieu (i == j).
Mais cela ne peut fonctionner qu'avec un nombre impair de caractères.
Or ta saisie as un nombre pair de caractères, donc il n'y a pas de caractère de milieu, du coup ta boucle ne s'arrêtes pas et ça fait n'importe quoi.
La condition d'arrêt de ta boucle c'est de tomber sur le caractère du milieu (i == j).
Mais cela ne peut fonctionner qu'avec un nombre impair de caractères.
Or ta saisie as un nombre pair de caractères, donc il n'y a pas de caractère de milieu, du coup ta boucle ne s'arrêtes pas et ça fait n'importe quoi.