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

Java Discussion :

[Débutant][String] Opérations sur une chaîne


Sujet :

Java

  1. #1
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut [Débutant][String] Opérations sur une chaîne
    Bonjour,

    j'ai créer une petite méthode qui me permet de transformer une String en une autre.
    Ma méthode me permet de renvoyer un bout d'une string passée en paramètre.
    Ex : la string "toto | test" deviendra "test"

    Voici le code qui, je pense, fait celà.
    Mais j'ai une erreur à l'exécution au niveau de la ligne : resultat[k] = tmp[j];
    L'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    java.lang.NullPointerException
     
    	at projet_applet.Applet_Test$exec.transformProcess(Applet_Test.java:328)
     
    	at projet_applet.Applet_Test$exec.actionPerformed(Applet_Test.java:337)

    Celà vient d'où d'après vous ?

    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
     
     char[] resultat;
     int i=0;
     int k=0;
     
        public String transformProcess(String chaine) {
          int length = chaine.length();
          char[] tmp = chaine.toCharArray();
     
          while (!(tmp[i] == '|'))
          {
            i++;
          }
          i = i+3;
          for (int j = i ; j < length ; j++)
          {
            resultat[k] = tmp[j];
            k++;
          }
          return (resultat.toString());
        }
    Est ce que ca pourrait venir que la variable resultat n'est pas initialisée ?

  2. #2
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    bonjour, il est fort probable que ça vienne de resultat.

    Pour transformer ta chaine, tu devrais regarder StringTokenize ou String.split()

    voilà.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Oui c parce que tu dois initialiser ton String[] en précisant sa taille... par défaut il contiendra des éléments null.

    Donc genre tu fais

    String[] tab=new String[100];

  4. #4
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Tout a fait cela vient de la

    Il y a plus imple pour faire ca, tu peux utiliser les methodes indexOf et substring..
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public String transformProcess(String chaine) {
    int index = chaine.indexOf('|');
    if (-1 == index)
    {
      return chaine;
    }
     
    return chaine.substring(index + 1, chaine.length);
    }
    Voila,

    Bulbo

  5. #5
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    ou alors tu peux remplacer ton char[] resultat par un StringBuffer

  6. #6
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Pourquoi s'emmerder:

    Tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String resultat = input.substring(input.lastIndexOf('|') + 1, input.length());

  7. #7
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par thibaut
    Pourquoi s'emmerder:

    Tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String resultat = input.substring(input.lastIndexOf('|') + 1, input.length());
    A quoi correspond input ?

  8. #8
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    input c'est chaine ta chaîne de départ...

  9. #9
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Ok merci messieurs.

    Ca fonctionne nickel.

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

Discussions similaires

  1. Afficher un string en format Hexa sur une Windows Form
    Par gabouche dans le forum C++/CLI
    Réponses: 3
    Dernier message: 07/06/2012, 13h30
  2. binding sur une string
    Par fxp17 dans le forum JSF
    Réponses: 8
    Dernier message: 08/09/2006, 11h38
  3. Réponses: 23
    Dernier message: 08/06/2006, 15h06
  4. Réponses: 8
    Dernier message: 27/03/2006, 17h12
  5. capter l'evenement clic sur une cellule d'un string grid
    Par lasconic dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/06/2003, 10h51

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