Extraction de données d'une String

Résolu
H4rDBuG Messages postés 47 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 26 juillet 2011 - 26 juil. 2011 à 15:43
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 27 juil. 2011 à 14:29
Bonjour,

J'ai une JCombobox Chargé de données sql :
(exemples)
1 - A4 80 grs Blanc (ramette de 500) *
220 - SAC KRAFT 229X324 90 GRS AC X 250 *

Sur ces données, je doit extraire juste le nom du produit (donc laisser de coté le chiffre et le tiret au début avec les espaces).

J'ai pensé a utiliser la classe StringTokenizer, mais je n'arrive pas a obtenir l'effet escompté ... voici mon code :

StringTokenizer st = new StringTokenizer(saisie.CEntLibProd.getSelectedItem().toString(), " - ");
        st.nextToken();
        String libprod = st.nextToken();


et Voila ce que j'obtiens avec un traitement sur mon premier exemple :
A4

Auriez-vous des idées pour m'aiguiller ?

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
26 juil. 2011 à 15:54
Bonjour,

Les StringTokenizer découpent la chaine en fonction des caractères, Le délimiteur " - " signifie que le caractère qui délimite un mot est soit un espace soit un - soit un espace.

Pour faire ce que tu veux, tu vas devoir utiliser les expressions régulières et la méthode split de la classe String :

String chaine="1 - A4 80 grs Blanc (ramette de 500) *";
String[] res=chaine.split("\\p{Space}-\\p{Space}");
for(String s:res){
    System.out.println(s);
}


Résultat de l'output :
1
A4 80 grs Blanc (ramette de 500) *

La valeur que tu cherches à récupérer est donc res[1]
3
Rejoignez-nous