Il y a actuellement 539 visiteurs
Vendredi 22 Novembre 2024
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 [résolu] Appels indésirables
Bonsoir? J'ai besoin d'aide, je n'en peux plus, mon portable est sur liste rouge, j'ai plusieurs appels par jour, d'un cabinet de santé, "santénéa", ils demandent à parler à ma femme, qui est décédée en octobre 2022, je ne comprends pas le lien entre mon numéro de portable et ma femme. ? J ...
Réponses: 27

Message Problème USB 3 sur mini PC (SSD M2 externe)
Bonjour a tous, j'ai un problème sur un mini PC fonctionnant sur un Intel N100. Il y a 2 port usb2 et 2 ports usb3. Mon problème ? Il semble que certains perifériques ne fonctionnent pas correctement (en l'occurence, les boitiers externes pour SSD M2).Si le SSD M2 est connecté sur un USB3 j'obtiens ...
Réponses: 5

Message probleme avec le logiciel nvidia
Bonjour,Oui DDU est très efficace , on s'en sert surtout quand on change de fabricant de carte graphique de AMD vers Nvidia par exemple. Il nettoie tout.Bonne journée.
Réponses: 13

Message [Résolu] Récupération du dual boot
Bonjour,Pourriez-vous m'aider à remettre le dual boot" sur un pc portable HP modèle G7 1235 SF" qui a Windows 10 et Ubuntu 24.04 que j'ai installé dans " l'espace libre" du disque dur mais au démarrage c'est Ubuntu qui est démarre directement, comment faire ?J'aurai voulu garder ...
Réponses: 13

Message [Réglé] probleme windows update recherche sans fin
Salut tout le monde depuis quelques jours lorsque je clique sur Windows update et recherche de mise à jour en cours cela se mets en recherche sans fin voir ma capture écran Rien n'y fait, j'ai beau exécuter l'utilitaire de dépannage Windows update rien n'y fait? Il me détecte en effet un incident, m ...
Réponses: 14

Message [résolu] Inscris à l'insu de mon plein gré
Bonjour J'ai un souci, qui m'énerve vraiment, ma fille m'a réglé une smart TV, pour que le Chromecast intégré fonctionne elle m'a créé un compte sur google. Presque sur chaque site, j'ai ceci :Sur le site TV loisir, je n'ai pas fait exprès, j'ai cliqué sur ok, au lieu de la croix, ça m'a créé un com ...
Réponses: 3


Qui est en ligne

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


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