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

Langage Java Discussion :

Conversion d'un String hex en int ne fonctionne pas


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Par défaut Conversion d'un String hex en int ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    package com.allofjade.jadedex;
     
    import java.io.InputStream;
    import java.util.Scanner;
     
    import android.content.Context;
    import android.util.Log;
     
     
    public class Lecteur_CSV {
     
    	public void lancer_lecture(Context contexte) {
     
    		InputStream is = contexte.getResources().openRawResource(R.raw.creatureslv1);
    		Scanner sc = new Scanner(is);
    		int total_lignes = 0;
     
    		{
    			// le délimiteur de ligne est une , suivie d'un retour à la ligne
    			sc.useDelimiter(",\n");
     
    			// Passage sur chaque créature pour récupérer les valeurs
    			while (sc.hasNext())
    			{
    				total_lignes++;
     
    				String CSV_Creature = sc.next();
    				// Découpage de la ligne parcourue
    				String[] CSV_Creature_Split = CSV_Creature.split(";");
     
    				creature creat = new creature();
    				creat.setNumero(Integer.parseInt(CSV_Creature_Split[0], 16));
    				creat.setNom(CSV_Creature_Split[1]);
    				creat.setPV(Integer.valueOf(CSV_Creature_Split[2], 16).intValue());
    				creat.setMana(Integer.valueOf(CSV_Creature_Split[3], 16).intValue());
    				creat.setAttaque(Integer.valueOf(CSV_Creature_Split[4], 16).intValue());
    				creat.setAttaque_max(Integer.valueOf(CSV_Creature_Split[5], 16).intValue());
    				creat.setDefense(Integer.valueOf(CSV_Creature_Split[6], 16).intValue());
    				creat.setDefense_max(Integer.valueOf(CSV_Creature_Split[7], 16).intValue());
    				creat.setAttaque_magique(Integer.valueOf(CSV_Creature_Split[8], 16).intValue());
    				creat.setAttaque_magique_max(Integer.valueOf(CSV_Creature_Split[9], 16).intValue());
    				creat.setDefense_magique(Integer.valueOf(CSV_Creature_Split[10], 16).intValue());
    				creat.setDefense_magique_max(Integer.valueOf(CSV_Creature_Split[11], 16).intValue());
    				creat.setVitesse(Integer.valueOf(CSV_Creature_Split[12], 16).intValue());
    				creat.setVitesse_max(Integer.valueOf(CSV_Creature_Split[13], 16).intValue());
    				creat.setTaux_PV(Integer.valueOf(CSV_Creature_Split[15], 16).intValue());
    				creat.setTaux_PV_max(Integer.valueOf(CSV_Creature_Split[16], 16).intValue());
    				creat.setTaux_Mana(Integer.valueOf(CSV_Creature_Split[17], 16).intValue());
    				creat.setTaux_Attaque(Integer.valueOf(CSV_Creature_Split[18], 16).intValue());
    				creat.setTaux_Defense(Integer.valueOf(CSV_Creature_Split[19], 16).intValue());
    				creat.setTaux_Attaque_magique(Integer.valueOf(CSV_Creature_Split[20], 16).intValue());
    				creat.setTaux_Defense_magique(Integer.valueOf(CSV_Creature_Split[21], 16).intValue());
    				creat.setTaux_Vitesse(Integer.valueOf(CSV_Creature_Split[22], 16).intValue());
    				creat.setSpecial_1_1(Integer.valueOf(CSV_Creature_Split[23], 16).intValue());
    				creat.setSpecial_1_2(Integer.valueOf(CSV_Creature_Split[24], 16).intValue());
    				creat.setSpecial_1_3(Integer.valueOf(CSV_Creature_Split[25], 16).intValue());
    				creat.setSpecial_1_4(Integer.valueOf(CSV_Creature_Split[26], 16).intValue());
    				creat.setSpecial_2_1(Integer.valueOf(CSV_Creature_Split[27], 16).intValue());
    				creat.setSpecial_2_2(Integer.valueOf(CSV_Creature_Split[28], 16).intValue());
    				creat.setSpecial_2_3(Integer.valueOf(CSV_Creature_Split[29], 16).intValue());
    				creat.setSpecial_2_4(Integer.valueOf(CSV_Creature_Split[30], 16).intValue());
    				creat.setSpecial_3_1(Integer.valueOf(CSV_Creature_Split[31], 16).intValue());
    				creat.setSpecial_3_2(Integer.valueOf(CSV_Creature_Split[32], 16).intValue());
    				creat.setSpecial_3_3(Integer.valueOf(CSV_Creature_Split[33], 16).intValue());
    				creat.setSpecial_3_4(Integer.valueOf(CSV_Creature_Split[34], 16).intValue());
    				creat.setSpecial_4_1(Integer.valueOf(CSV_Creature_Split[35], 16).intValue());
    				creat.setSpecial_4_2(Integer.valueOf(CSV_Creature_Split[36], 16).intValue());
    				creat.setSpecial_4_3(Integer.valueOf(CSV_Creature_Split[37], 16).intValue());
    				creat.setSpecial_4_4(Integer.valueOf(CSV_Creature_Split[38], 16).intValue());
    				creat.setSpecial_5_1(Integer.valueOf(CSV_Creature_Split[39], 16).intValue());
    				creat.setSpecial_5_2(Integer.valueOf(CSV_Creature_Split[40], 16).intValue());
    				creat.setSpecial_5_3(Integer.valueOf(CSV_Creature_Split[41], 16).intValue());
    				creat.setSpecial_5_4(Integer.valueOf(CSV_Creature_Split[42], 16).intValue());
    				creat.setMagie_1(Integer.valueOf(CSV_Creature_Split[43], 16).intValue());
    				creat.setMagie_2(Integer.valueOf(CSV_Creature_Split[44], 16).intValue());
    				creat.setMagie_3(Integer.valueOf(CSV_Creature_Split[45], 16).intValue());
     
     
    			}
    			sc.close();
    			Log.i("Lecture du fichier CSV", "Ajout de " + (total_lignes -1) + "créatures en mémoire réussi.");
    		}
    	}
    }
    Bonsoir, ouverture d'un nouveau sujet pour lequel j'ai l'impression d'être le seul a avoir eu l'erreur sur le net...

    Donc j'ai tenté d'utiliser les deux méthodes ( lignes 32 et 33 ), mais l'application plante à chaque fois avec un joli "Unable to parse '1' as integer", si quelqu'un pouvait m'expliquer pourquoi

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    probablement à cause des guillement qui restent autour du 1? Parce que
    1 c'est un entier mais
    '1' c'est une chaine de 3 caractère dont un seul est un nombre

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Par défaut
    Je testerais ce soir, là je suis en pause au boulot, mais je doute que ça fonctionne, car quand je mets des points d'arrêt, CSV_Creatures_Split[] contient les bonnes valeurs sans guillemets, mais ça peut valoir le coup d'essayer

  4. #4
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Dans ce cas, essaye un System.out.println(CSV_Creature_Split[0]); pour te rendre compte...

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Par défaut
    C'est correctement splitté, j'ai même pas mal avancé dans le programme, je peux donc afficher tous mes éléments en tant que string à l'écran: aucun n'a de " ou de ' ou quoi que ce soit d'autre, tous des string de nombres hexa, hormis le nom et les magies ( nom est un string, magie_1, 2 et 3 sont en binaire )

  6. #6
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Est ce que tu peux poster la stacktrace de l'exception complete?

Discussions similaires

  1. Conversion de mois string en mois int +1
    Par choubak dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/07/2007, 09h10
  2. Servlet: problème de conversion d'un string en INT
    Par keumlebarbare dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 28/11/2006, 10h44
  3. * du SQL pour un INT ? % ne fonctionne pas...
    Par Allen dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/04/2006, 11h23
  4. [Débutant] Conversion d'un String en Int
    Par chleuh dans le forum Langage
    Réponses: 9
    Dernier message: 30/12/2004, 13h33
  5. Réponses: 2
    Dernier message: 21/06/2004, 15h55

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