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 :

Découpage de string


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 66
    Par défaut Découpage de string
    Bonjour ,

    Je suis débutant en Java, travaillant en ce moment sur le traitement de données arrivant sur un port série , je souhaite découper ce que je reçois par la méthode readLine() .

    Les infos reçue sont de la forme "A,0350" par exemple, je pensait donc utiliser la méthode substring de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String valeur = null;
    String val = null;
    valeur = port.readLine();
    val = valeur.substring(2,6);
    Je pensais récupérer les 4 dernier caractère pour les utiliser ensuite dasn une formule mais l'erreur suivante se présente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.StringIndexOutOfBoundsException: String index out of range: 6
    Je ne comprend pas ...

    Et je vous remercie pour toute vos réponses !

  2. #2
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut
    Prends garde à savoir sur quelle chaine de caractères tu manipules : est elle un objet null ? combien de caractères elle contient ?
    La doc de Heimdal est le meilleur exemple pour résumer la méthode substring.

    Penses peut-être à StringTokenizer :

    http://java.sun.com/j2se/1.5.0/docs/...Tokenizer.html

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Manifestement, les infos ne sont pas de la forme "A,0350" et elles font moins de 6 caractères.

    Vérifie.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Peut être qu'en utilisant la méthode split tu t'en sortirai mieux (car en effet, avec la méthode substring, si à un moment tu n'as que 3 caractères à la fin au lieu de 4, ben tu te prends une exception).

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Salut !

    Allez on oublie nos vieilles habitudes et on utilise des vrais outils qui fonctionnent : les regex.

    Ce code devrait faire ton bonheur, essaye le pour voir !

    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
     
    package test;
     
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    public class Test {
     
    	public static void AnalyseChaine(String chaine)
    	{
    		Pattern pattern = Pattern.compile("^(\\w+),(\\d+)$");
    		Matcher matcher = pattern.matcher(chaine);
    		if(matcher.matches()) {
    			System.out.println("Trouvé ! Mot : "+matcher.group(1)+" - Chiffre :"+matcher.group(2));
    		}
    		else
    		{
    			System.out.println("Non valide.");
    		}
    	}
    	public static void main(String[] args) {
    		Test.AnalyseChaine("A,0350");
    		Test.AnalyseChaine("Salut,0350");
    		Test.AnalyseChaine("A,45456545");
    		Test.AnalyseChaine("YeahJojo,");
    		Test.AnalyseChaine("Alohes,4545685");
    		Test.AnalyseChaine("Les regex c'est magique !");
    	}
     
    }

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

Discussions similaires

  1. Découpage de string
    Par makia42 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 21/04/2010, 11h28
  2. [Découpage chaine String et decalages binaires]
    Par moulefrite dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/12/2008, 15h27
  3. [VB 6.0]Travailler sur un String (découpage)
    Par t'djinn dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/06/2006, 16h39
  4. Découpage dun string dans l'espace
    Par Clad3 dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/03/2005, 17h25

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