Problème d'affichage
ArmandAs_1998
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
ArmandAs_1998 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
ArmandAs_1998 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
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.