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 confirmé
    Inscrit en
    Janvier 2013
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 74
    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 chevronné 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 : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Peut-être parce que ta variable est vide?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2013
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 74
    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 chevronné
    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
    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 confirmé
    Inscrit en
    Janvier 2013
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 74
    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