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

avec Java Discussion :

un petit probléme avec les String.


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 26
    Points : 22
    Points
    22
    Par défaut un petit probléme avec les String.
    bonjour tout le monde,
    j'ai une chaine dont la forme est
    "ABC|AB CF|dslm"

    je veut tout simplement faire la conversion des chaine hors les pipe c'est a dire

    "ABC" et "dslm" en héxadécimale et je veut garder la chaine entre les pipe dans ça forme originale.
    c'est a dire ne fin je doit disposer de la chaine suivante.

    41 42 43 AB CF 64 73 6C 6D
    bien sure je doit pas convertir les pipe il sont utilisé pour informée sur les chaine que je doit convertir.

    voila mon travail jusqu'a maintenant:

    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
    public class Conversion{
        Vector Ascii;
        Vector AsciiToExa;
        String Chaine="ABCdslm";
     
     
     
        public void Convert(){
           String [] Resultat=null;
           byte [] Octet=null;
           Octet=Chaine.getBytes();
           for(int i=0;i<=Chaine.length()-1;i++)
               {
                String s=Integer.toHexString(Octet[i]&0xff);
                System.out.print(s.toUpperCase()+" ");
                   }
                        }
    je besoin de vous pour m'aider a faire l'extraction des chaine entre les pipe et les concaténer avec les autre chaine.

    merci.

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bonjour,

    As tu essayé d'utiliser la méthode split() de String? (ca te retourne un tableau de String)
    Dans la javadoc, tu verras que
    "boo:and:foo".split(":") => { "boo", "and", "foo" }

    Après il ne te reste plus qu'à prendre les chaines à convertir dans le tableau...

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    la methode split te renvoie bien un tableau de string contenant les differentes chaines contenues entre les caracteres "|"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String[] chaine= aConvertir.split("|");
    Mais si tu veux contatener toutes les sous chaines, tu peux utiliser la methode replace de l'objet string pour remplacer le caractere "|" par une chaine nulle afin d'avoir la chaine sans le caractere "|"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String chaine= aConvertir.replace("|", "");

  4. #4
    Débutant Avatar de hb2ee
    Inscrit en
    Mars 2009
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 157
    Points : 78
    Points
    78
    Par défaut
    tu peut utilisé les substring pour extraire les chiane desiré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     String ab, cd;
    String chain =  "ABC|AB CF|dslm";
    ab = chian.subString(0,3);
    cd = chain.substring(10,13);
    et aprés a vous de jouer, il y -a pas mal des APIs de conversion
    Un vétéran allongé sur son lit voit plus qu’un jeune débout sur ses pieds

    l'expert c'est celui qui a commit plus des erreurs

    Houss Boss 2 Entreprise Edition

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 26
    Points : 22
    Points
    22
    Par défaut un petit probléme avec les String.
    Mon problème c'est que je ne sais pas la chaine que je doit travailler sur, mais c'est que je sais c'est la format de la chaine.
    exemple de chaine.

    |ABC|chaine|ABF|autrechaine
    ce qui est en rouge est considérer comme binary donc intouchable,
    tout autre est un texte donc je doit le convertir en hexa avec Integer.toHexString(...&0xff);
    j'espere que j'ete plus claire,
    merci

  6. #6
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 502
    Points
    15 502
    Par défaut
    Si j'ai bien compris une partie sur deux est a convertir en hexadécimal, l'autre étant a garder telle qu'elle. Dans ce cas ceci devrait fonctionner:

    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
    String out="";
    // Le split découpe la chaine en fragments(en fonction du délimiteur | )
    String[] fragment = chain.split("\\|"); 
     
    for( int i=0; i< fragment.length; i++){
      // Si le numéro de fragment est pair
      if (i%2 == 0) {     
        for (int j=0 ; j<fragment[i].length() ; j++){      
          //Le code de chaque caractère est affiché sous forme hexadécimale:
          out+= Integer.toString(fragment[i].charAt(j), 16) + " "; 
        }
      }
     
      // Si le numéro du fragment est impair
      else{
        //Le texte est inchangé
        out+= fragment[i] + " ";
      }
    }

Discussions similaires

  1. Petit problème avec les pointeurs et variable
    Par mitherkiller dans le forum C
    Réponses: 5
    Dernier message: 09/03/2007, 22h05
  2. [VBA-Excel] Petit problème avec les formulaires
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2006, 09h22
  3. Tout petit probleme avec les string
    Par bixi dans le forum Delphi
    Réponses: 4
    Dernier message: 06/06/2006, 09h46
  4. Sale problème avec les strings et les fichiers
    Par acieroid dans le forum C++
    Réponses: 18
    Dernier message: 26/04/2006, 09h47
  5. Petit problème avec les accents circonflexes...
    Par Harvester dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 29/11/2005, 18h44

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