Il y a actuellement 211 visiteurs
Jeudi 25 Décembre 2025
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

[RESOLU] JAVA - Problème charAt()

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

[RESOLU] JAVA - Problème charAt()

Message le 24 Mar 2010 15:23

Bonjour à tous et toutes.

Etant donné que je suis en stage et que je n'ai pas grand chose à faire, je me suis dit que je pourrais me mettre un peu au java.

j'ai donc commencé à faire une calculatrice dans ce langage.
un problème se pose. Je n'arrive pas à transformer mon String en char :

L'erreur :
Code: Tout sélectionner
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
   at java.lang.String.charAt(Unknown Source)
   at demande.main(demande.java:26)


La partie de code concerné :
Code: Tout sélectionner
do {
         System.out.println("Selectionner l'opération à effectuer : \n x --> Multiplication \n / --> division \n + --> addition \n - --> soustraction \n");
         choix = scanner.nextLine();
         operation = choix.charAt(0);
      } while ((operation == '+') || (operation == '-') || (operation == 'x') || (operation == '/'));


merci de votre aide dans mes début fort peu concluant !
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 


Re: JAVA - Problème charAt()

Message le 24 Mar 2010 16:42

Salut,

La variable operation est bien déclarée en Char ?

C'est étrange, parceque l'exception de dis "out of range" alors que un String commence bien à l'indice 0 normalement...

Tu pourrais nous faire voir tout ton code ?
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: JAVA - Problème charAt()

Message le 24 Mar 2010 17:01

Biensure, voici tout le code et toutes les variables sont déclaré il me semble sinon il me l'aurait dit !

Code: Tout sélectionner
import java.util.Scanner;


public class demande {

   /**
    * @param args
    */
   public static void main(String[] args) {
      
      double resultat = 0;
      double nmbUn = 1;
      double nmbDeux;
      String choix = new String ();
      int numero = 0;
      char operation;
      Scanner scanner = new Scanner (System.in);
      
      System.out.println("Tapez votre nombre numéro \n" + numero);
      nmbUn = scanner.nextDouble();
      numero ++;
      
      do {
         System.out.println("Selectionner l'opération à effectuer : \n x --> Multiplication \n / --> division \n + --> addition \n - --> soustraction \n");
         choix = scanner.nextLine();
         operation = choix.charAt(0);
      } while ((operation == '+') || (operation == '-') || (operation == 'x') || (operation == '/'));

      System.out.println("Tapez votre nombre numéro " + numero + "\n");
      nmbDeux = scanner.nextDouble();
      numero ++;
   
         switch (operation)
         {
            case '+': resultat = nmbUn+nmbDeux;
               break;
            case '-': resultat = nmbUn-nmbDeux;
               break;
            case 'x': resultat = nmbUn*nmbDeux;   
               break;
            case '/': resultat = nmbUn/nmbDeux;   
               break;
            default: System.out.println("erreur de saisie dans le choix de l'opération");
         }
      //while (operation != f)
      //{
      System.out.println(resultat);
      
      //}
   }

}
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Re: JAVA - Problème charAt()

Message le 24 Mar 2010 17:40

D'accord, le problème vient du fait que tu utilises deux fois le scanner, donc en fait il faut en créer un nouveau pour pouvoir faire ta saisie de caractère.

Autre problème, ton do... while sur la variable opération était une boucle infinie, j'ai modifié la condition pour que ça fonctionne.

Voilà le code corrigé :

Code: Tout sélectionner

import java.util.*;
import java.util.Scanner;

public class Demande {

   /**
    * @param args
    */
   public static void main(String[] args) {
     
      double resultat = 0;
      double nmbUn = 1;
      double nmbDeux;
      String choix = new String ();
      int numero = 0;
      char operation;
      Scanner sc = new Scanner (System.in);
     
     
      System.out.println("Tapez votre nombre numéro \n" + numero);
      nmbUn = sc.nextDouble();
      numero ++;
     
      do {
         System.out.println("Selectionner l'opération à effectuer : \n x --> Multiplication \n / --> division \n + --> addition \n - --> soustraction \n");
//création d'une nouvelle instance de Scanner, c'est plus simple
   Scanner sc2 = new Scanner (System.in);
         choix = sc2.nextLine();
         operation = choix.charAt(0);
//modification de la condition de sortie du do while
      } while ((operation != '+') && (operation != '-') && (operation != 'x')&& (operation != '/'));

      System.out.println("Tapez votre nombre numéro " + numero + "\n");
      nmbDeux = sc.nextDouble();
      numero ++;
   
         switch (operation)
         {
            case '+': resultat = nmbUn+nmbDeux;
               break;
            case '-': resultat = nmbUn-nmbDeux;
               break;
            case 'x': resultat = nmbUn*nmbDeux;   
               break;
            case '/': resultat = nmbUn/nmbDeux;   
               break;
            default: System.out.println("erreur de saisie dans le choix de l'opération");
         }
      //while (operation != f)
      //{
      System.out.println(resultat);
     
      //}
   }

}
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: JAVA - Problème charAt()

Message le 24 Mar 2010 19:14

Ha oui effectivement pour la boucle infinie !
J'ai toujours un problème avec les et / ou pourtant c'est bidon, je doit pas réfléchir assez !

C'est un peu nul que je ne puisse pas réutiliser le même scanner, ça utilise de la ram (oui j'apprends, mais autant commencé en essayant d'apprendre à optimiser ses programmes).

Il n'y a pas un moyen de réutiliser le même objet ? genre en le vidant nan ?

Merci de ton aide ! je vais testé ça (demain je pense) !

edit : pourquoi tu importe :
Code: Tout sélectionner
import java.util.*;


Merci encore
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Re: JAVA - Problème charAt()

Message le 24 Mar 2010 19:22

Euuh, c'est une erreur de ma part en fait, il suffit d'importer java.util.Scanner, avec la ligne java.util.*, j'importe tout les paquets contenus dans java/util, ce qui n'est pas franchement optimisé, donc à ne pas trop faire en temps normal...
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: JAVA - Problème charAt()

Message le 24 Mar 2010 19:26

Et pour l'objet Scanner, pas possibilité de réutiliser le même ?
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Re: JAVA - Problème charAt()

Message le 25 Mar 2010 09:18

Problème résolu !

Merci à toi H3bus.

je mets le post en résolu tout de suite !

edit : En plus j'ais finis ma calculette, qui marche du feu de dieu !
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Re: [RESOLU] JAVA - Problème charAt()

Message le 25 Mar 2010 13:46

System.out.println("Pas de problème ! :wink:")
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: [RESOLU] JAVA - Problème charAt()

Message le 25 Mar 2010 14:30

H3bus a écrit:System.out.println("Pas de problème ! :wink:")


System.out.println("Pas de problème ! :wink:"); <----- le point virgule !!! :D :lol:
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Re: [RESOLU] JAVA - Problème charAt()

Message le 25 Mar 2010 14:43

Argh, l'erreur de débutant ! Je suis démasqué ! :lol:
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 



Sujets similaires

Message Probleme d'affichage : haut de l'écran qui apparait en bas
Bonjour/BonsoirJ'ai un probleme lorsque mes jeux sont lancés (pas tous en meme temps, je rassure)Lorsque j'allume minecraft ou Hogwards Legacy que j'utilise en ce moment, j'ai un bug d'affichage qui est le suivant ... Le haut de mon écran apparait en bas en sautant. Peu importe que je suis en plein ...
Réponses: 1

Message [Réglé] Problème sur écran neuf
Bonjour,j'ai encore un souci suite au sujet de mon écran ICI. Etant donné qu'il est noté réglé, peut-être qu'il n'est plus trop "visible".Mon ancien écran ayant rendu l'âme après 17 ans, j'ai acheté un écran Acer 24 pouces cba242yabir trouvé en solde à 109? chez Leclerc. Je le trouve franc ...
Réponses: 14

Message [Résolu] La sauvegarde de windows ne s'est pas effectuée
Salut tout le monde j'ai essayé de faire une sauvegarde Windows et elle a échoué je pense à cause de deux fichiers de mon téléphone, je ne sais d'ailleurs pas pourquoi elles se trouvent avec? voir captures écran svp pour plus de clarté https://up2sha.re/file?f=VfV04mIhttps://up2sha.re/file?f=kabkYAt ...
Réponses: 5

Message [Résolu] imprimante brother win11
Bonjour,J'ai essayé les conseils lu sur le net pour installer mon imprimante brother dcp2520dw sur mon pc win11, mais "échec".J'ai utilisé un câble comme demandé.Cdt
Réponses: 16

Message [Résolu]probleme Ads by Images+
Depuis quelque jours avec mon moteur de recherche Google sur Firefox, c'est ajouté Ads by Images+merci
Réponses: 16

Message [Résolu]Ads by Images+
Bonjour depuis quelques jours, j'ai Ads by images dans mes recherches Google peut on enlevé ca merci
Réponses: 5


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


.: Nous contacter :: Flux RSS :: Données personnelles :.
cron