IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Erreur "CharAt(i) et String index out of bounds"


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 74
    Points : 40
    Points
    40
    Par défaut Erreur "CharAt(i) et String index out of bounds"
    Bonjour, je voudrais savoir pourquoi une condition sur charAt(i) provoque une exception String out of Bounds.

    Voici un exemple :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	String lire ="";
    			while ((lire.charAt(0) != '"') || (lire.charAt(0) != '=')) {
    				Terminal.ecrireStringln("Entrez une mot");
    				Terminal.lireString();
    }

    me donne ce joli message :
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(String.java:694)

    Merci

  2. #2
    Membre confirmé Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Points : 500
    Points
    500
    Par défaut
    Peut-être parce que ta variable est vide?
    Mes logiciels n’ont jamais de bug. Ils développent juste certaines fonctions aléatoires.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 74
    Points : 40
    Points
    40
    Par défaut CharAt(i) et conditions
    Merci, effectivement, si la chaîne n'est plus vide, il n'y a plus d'erreur, mais je ne suis pas pour autant sorti d'affaire.

    Malgré les conditions remplies, je ne sors pas de la boucle :
    J'écris "test" et la console me propose de nouveau d'entrer un mot.

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String lire = Terminal.lireString();
    			while ((lire.charAt(0) != '"') || (lire.charAt(0) != '=')) {
    				Terminal.ecrireStringln("Entrez une mot");
    				Terminal.lireString();
    		}

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    bonjour,

    il y a 2 erreurs dans ton code :

    1- la condition du while il faut un && et non un ||.

    En effet il faut que le char(0) ne soit pas un '"' et pas un '='.

    Dans sa version actuelle ton teste est toujours vrai car si char(0)='"', il n'est pas égal à "=" donc vrai et inversement.

    2- tu ne réactualises pas la variable lire dans ta boucle donc le test se fait toujours sur la première valeur de lire

    remplacer Terminal.lireString(); par lire = Terminal.lireString();

    voici un exemple =

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import java.util.Scanner;
     
    public class TestBoucle {
    	public static void main(String[] args) {
    		Scanner scan = new Scanner(System.in);
    		String lire = scan.next();
    		while ((lire.charAt(0) != '"') && (lire.charAt(0) != '=')) {
    			System.out.println("Entrez un mot");
    			lire = scan.next();
    		}
    	}
    }

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 74
    Points : 40
    Points
    40
    Par défaut
    Merci, sujet résolu !

Discussions similaires

  1. Message d'erreur : Liste index out of bounds (-1)
    Par valer dans le forum Langage
    Réponses: 7
    Dernier message: 25/04/2008, 08h50
  2. Erreur List Index Out Of Bound
    Par Baxter67 dans le forum C++Builder
    Réponses: 29
    Dernier message: 21/04/2008, 10h39
  3. String index out of range
    Par *alexandre* dans le forum Langage
    Réponses: 3
    Dernier message: 08/01/2008, 04h19
  4. probleme de relogin: String index out of range: 0
    Par bbany dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 07/09/2007, 17h04
  5. Réponses: 15
    Dernier message: 31/03/2007, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo