Il y a actuellement 194 visiteurs
Vendredi 17 Septembre 2021
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 ?
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
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);
     
      //}
   }

}
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
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...
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
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:")
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
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:
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 



Sujets similaires

Message Problème de démarrage Windows 10
Bonjour,Pourriez-vous m'aider car j'aurai voulu redémarrer mon pc de bureau ( core 2 Q 6600 avec 8 go de ram) qui est sous windows 10 et qui suite à une mise à jour dont je ne connais pas le numéro, m'a fait planté le pc car au démarrage, j'ai cet écran :Périphérique requis n'est pas connecté ou ...
Réponses: 11

Message [Réglé] problème de réinstallation Windows 10
Bonjour,Pourriez-vous m'indiquer si vous avez déjà rencontré un problème de réinstallation de Windows 10 sur un pc portable, car j'ai un modèle "Lenovo X 201", suite à un plantage qui était due une mise à jour, "écran bleu " critical process" en boucle, mon collègue a sauv ...
Réponses: 15

Message Problème démarrage Lenovo portable
Bonjour, je possède un portable Lenovo modèle E330 qui s'allume et qui m'affiche le message suivant.J'ai changé la pile Bios mais rien n'y fait l'ordinateur ne veut pas démarrer même en tapant F2 ou autre au démarrage.Je ne comprends pas.Merci pour votre aide.
Réponses: 12

Message Problème d'impression avec HP 6525
Bonjour,Je ne pense pas que ça vienne des cartouches , moi j'en ai qui viennent d'un pays lointain et que je peux recharger moi-même.Soucis c'est que l'encre ça tache bien les doigts Chez ma fille c'est qu'elle avait eu auparavant déjà une imprimante HP et qu'au changement de matériel elle n'avai ...
Réponses: 11

Message Problème campagne mailing/ publipostage
Bonjour, Je travaille pour une société spécialisée dans le commerce international et mon patron aimerait que nous travaillions avec des logiciels de publipostage ou de campagne mailing.Nous avons donc dans la compagnie MaxBulk mailer, mais malheureusement je ne comprends rien à ce que l'on me demand ...
Réponses: 2

Message problème wifi Asus RT-AX89X
Bonjour,J'ai acheté un routeur Asus RT-AX89X. J'ai un petit problème qui est pénible. En câble Ethernet aucun problème par contre en wifid, jaiprj'ai des problème dont je vais vous citer plus bas :J'arrive à connecter en wifi 5G ou 2, 4G mon téléphone, nvidia Shield, Google next hub.Par contre j'ai ...
Réponses: 0


Qui est en ligne

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


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