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 :

[Java] conversion String/Int


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut [Java] conversion String/Int
    Bonjour,

    J'ai un problème en JAVA pour transformer une String en entier (int).

    J'ai écris le code suivant :
    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
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    public class OSE {
    	public static void main(String args[]) {
    		String secu="12121212121212 4";
    		secu=secu.replaceAll(" ", "");
    		Pattern psecu = Pattern.compile("[0-9]{15}");
    		Matcher msecu = psecu.matcher(secu);
    		boolean bsecu = msecu.matches();
    		if (!bsecu){
    			System.out.println("Le numero de securite social doit comporter quinze chiffres.");
    		} 
    		else{
    			int i=Integer.valueOf(secu).intValue();
     
    		}
    	}
    }
    J'obtiens le message d'erreur :
    Exception in thread "main" java.lang.NumberFormatException: For input string: "121212121212124"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.valueOf(Unknown Source)
    at OSE.main(OSE.java:15)
    Je ne vois pas ce qui ne lui convient pas. Pouvez vous m'aider ?

    Maxime

  2. #2
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut
    La chaine de caractere que tu essaie de convertir en valeur numerique n'est pas un int mais un long : tente ta chance avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Long.parseLong(maChaine);

  3. #3
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    +1
    Juste une petite remarque : un numéro de sécu ne devrait pas être considéré comme un nombre mais comme une suite de plusieurs informations :
    1er chiffre : donne le sexe ( 1=homme, 2=femme) ou est un marqueur signifiant étrangé ( 9 ).
    2ème et 3ème chiffre : année de naissance
    4ème et 5ème chiffre : mois de naissance sous forme "mm"
    6ème et 7ème chiffre : département
    8ème au 13ème chiffre : ces 3 premiers chiffres correspondent au numéro de centre auquel est rattaché l'assuré, les 3 derniers chiffres il me semble que c'est un numéro séquentiel qui t'ait attribué séquentiellement.
    14ème et 15ème chiffre : c'est un nombre calculé en fonction des précédents chiffres.

    Tout ça pour dire que ta conception n'est pas bonne, un numéro de sécurité social n'est pas un nombre ( malgrés qu'il ne soit constitué que de chiffres ) mais une agrégation de renseignements.

    Manipuler cet identifiant sous forme de nombre est faisable ( voir post de leyee ) mais pas vraiment cohérent, la logique objet vroudrait qu'il y ait une classe "NumSS" qui effectue les controles de cohérence relatifs aux diverses informations la composant ( notament la clef ). Le laisser sous forme de String serait donc plus logique que de le caster un int...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut
    Bonjour,

    Merci pour les infos !

    Maxime

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion String --> INT
    Par GérardMartinelli dans le forum Langage
    Réponses: 7
    Dernier message: 19/02/2014, 19h00
  2. problème de conversion string > int
    Par supcomingenieur dans le forum Langage
    Réponses: 7
    Dernier message: 13/05/2013, 16h22
  3. [Java] Conversion String en Hexa
    Par Altrensa dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2010, 14h32
  4. Conversions : String->int et int->TCHAR
    Par CyberSlan dans le forum C++
    Réponses: 10
    Dernier message: 13/06/2008, 15h12
  5. Problème de conversion string->int
    Par seheiahs dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2006, 10h42

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