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 :

Extraction d'entier d'une chaine


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 76
    Par défaut Extraction d'entier d'une chaine
    Bonjour,

    J'ai une chaine de la forme "Nombre 2 yyyyyyyyyyyy" et je veux extraire l'entier qui vient juste après "Nombre" mais je veux le résultat de type entier.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Salut,

    Tu peux utiliser StringTokenizer(), récupérer la 2ème partie et la convertir en int ou Integer

  3. #3
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Utilise plutôt String.split , car dans la javadoc de StringTokenizer on peut lire :

    StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

  4. #4
    Membre confirmé Avatar de cybercrisp
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Par défaut
    un exemple qui t'aidera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.util.*; //importer le package
     
    public class version extends Applet
    {  String s="10,15,24,36,,78;47,26 38,45,9";//chaîne à découper
       int Tab[] = new int[10]; //tableau des valeurs
     
    public void paint(Graphics g)
    { int i=0;
      StringTokenizer st =new StringTokenizer(s,"; ,");//3 séparateurs ; , et blanc
      while (st.hasMoreTokens()){  //boucle de lecture
        Tab[i]=Integer.parseInt(st.nextToken());  //éléments du tableau
        g.drawString(""+Tab[i],20,20+15*i);
        i++;}}
    }

  5. #5
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Sans StringTokenizer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String s = "Nombre 2 yyyyyyyyyyyy";
    int i = new Integer(s.split(" ")[1]);

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Par défaut
    Si le nombre est toujours au même endroit, tu peux utiliser simplement substring.
    Dans ton exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String s = "Nombre 2 yyyyyyyyyyyy";
    String s2 = s.subString(6,6);

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 76
    Par défaut
    Merci ça marche bien.

  8. #8
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par skeltryx
    Si le nombre est toujours au même endroit, tu peux utiliser simplement substring.
    Dans ton exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String s = "Nombre 2 yyyyyyyyyyyy";
    String s2 = s.subString(6,6);
    Il faut dans ce cas que la valeur soit <10 ... et puis alors autant faire un charAt(6)

    la méthode split est la plus simple et la plus adaptée je trouve ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Par défaut
    oui c'est pour ca que j'ai précisé qu'il fallait que les nombres fassent toujours la meme longueur.
    Apres on peut faire quelque chose dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String s = "Nombre 2 yyyyyyyyyyyy";
    String s2 = new String("");
    int i = 6;
    while(s.charAt(i).isdigit)
         s2 = s2 + s.charAt(i);
    je ne suis pas très sur de la syntaxe j'ai pas de compilateur sous la main...

  10. #10
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par skeltryx
    oui c'est pour ca que j'ai précisé qu'il fallait que les nombres fassent toujours la meme longueur.
    Ben tu précisais qu'il fallait qu'il soit au même "endroit"

    juste une petite correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int i=5
    while(s.charAt(++i).isdigit)
         s2 += s.charAt(i);

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Par défaut
    oui en effet désolé j'ai pas fait gaf

Discussions similaires

  1. extraire des entiers d'une chaine de caractère
    Par 18Marie dans le forum Langage
    Réponses: 9
    Dernier message: 10/08/2006, 12h17
  2. Premiere occurence d'un entier dans une chaine
    Par amika dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2006, 21h04
  3. Extraire une valeur entiere d'une chaine de caractere
    Par Aloneghost dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2006, 13h23
  4. Réponses: 10
    Dernier message: 10/10/2005, 21h46
  5. Réponses: 9
    Dernier message: 17/01/2003, 12h45

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