Trier des données de type texte contenues dans un StringBuffer ? - Java - Programmation
Marsh Posté le 15-09-2004 à 11:32:00
je la sens pas bien ton histoire ; qu'est-ce que tu entends par trier ?
Marsh Posté le 15-09-2004 à 11:35:58
Je dois réordonner le contenu des lignes dans le buffer selon un certain critère (tri sur matricule par exemple sauf que là, c'est un peu plus compliqué que ça, du coup je ne peux pas faire des append() dans le buffer de sorte que le résultat soit trié au final)...
Marsh Posté le 15-09-2004 à 11:38:57
Tu arrivera à rien avec un StringBuffer.
Trie tes chaines (ou mieux, tes objets qui te donnent tes chaines) et ensuite, si tu as besoin, concatène le tout avec on StringBuffer.
[edit] en fait, elles sortent d'où, tes chaînes, avant que tu ne les mettes dans le buffer?
Marsh Posté le 15-09-2004 à 11:40:38
Je les génère par append() dans mon StringBuffer justement. Il s'agit d'enregistrements de fichiers texte que je crée selon un format donné
Marsh Posté le 15-09-2004 à 11:40:57
alors moi je dirais StringBuffer -> StringTokenizer -> List ou tableau de String -> trier le tableau -> refaire un StringBuffer (si c'est vraiment nécessaire)
Marsh Posté le 15-09-2004 à 11:42:45
Ah oui, c'est pas mal, ça. J'étais parti sur la solution "Artillerie lourd" avec ByteArrayInputStream, InputStreamReader et BufferedReader.
Je vais voir si la chaîne retournée par System.getProperty("line.separator" ) peut servir de séparateur au StringTokenizer
Marsh Posté le 15-09-2004 à 11:45:04
machinbidule1974 a écrit : Je les génère par append() dans mon StringBuffer justement. Il s'agit d'enregistrements de fichiers texte que je crée selon un format donné |
à ce moment là tu les met directement dans un tableau, pas besoin de StringBuffer.
Marsh Posté le 15-09-2004 à 11:45:08
machinbidule1974 a écrit : Je les génère par append() dans mon StringBuffer justement. Il s'agit d'enregistrements de fichiers texte que je crée selon un format donné |
Bah....
au lieu de les concaténer, tu les met dans une List, tu tries la List, et ensuite, tu concatènes!
Grilled.
Marsh Posté le 15-09-2004 à 11:48:11
R3g a écrit : à ce moment là tu les met directement dans un tableau, pas besoin de StringBuffer. |
Oui, c'est vrai que j'ai tellement pris l'habitude d'utiliser le StringBuffer que je ne me posais même plus la question de savoir pourquoi je l'utilisais.
OK, j'ai donc ma solution clean...
Merci à vous deux
Marsh Posté le 15-09-2004 à 15:33:56
ReplyMarsh Posté le 15-09-2004 à 15:37:16
pas mieux!
Marsh Posté le 15-09-2004 à 15:38:12
et alors, le coup du line.separator c'est bien aussi ça ...
ça fait 2 points d'un coup, pas mal.
je devrais reprendre le tableau de bons-points-java, mais à l'envers
Marsh Posté le 15-09-2004 à 15:42:40
Avec le code que je corrige depuis le début de la semaine, je vais les collectionner!
Marsh Posté le 15-09-2004 à 15:46:06
'tain, quel engin!
Marsh Posté le 15-09-2004 à 15:51:14
the real moins moins a écrit : et alors, le coup du line.separator c'est bien aussi ça ... |
C'est quoi le problème au juste du line.separator ???
Marsh Posté le 15-09-2004 à 15:54:58
que sur un objet String ton line separator c'est \n et pas un truc dépendent du systeme, qui n'est interessant que lorsqu'on parse un fichier à la main.
(et encore, les Reader s'en chargent pour toi)
Marsh Posté le 15-09-2004 à 15:59:57
Et bien non, le line.separator te retourne un saut de ligne portable car le line.separator ne retourne pas toujours \n, ça dépend de ta plateforme d'exécution. C'est #10#13 (ou l'inverse) sous Windows mais #10 (ou #13 je sais plus) uniquement sous Unix.
C'est d'ailleurs pour ça que je l'utilise
Ca ne fait donc qu'une connerie dans mon topic
Marsh Posté le 15-09-2004 à 16:00:22
gfive a écrit : Avec le code que je corrige depuis le début de la semaine, je vais les collectionner! |
sinon çui-ci est sympa aussi, en 5 posts, il a toujours pas réussi à dire quel était son problème. (5 posts dont deux ou je lui demande justement quel est le probleme...)
Marsh Posté le 15-09-2004 à 16:01:06
the real moins moins a écrit : sinon çui-ci est sympa aussi, en 5 posts, il a toujours pas réussi à dire quel était son problème. (5 posts dont deux ou je lui demande justement quel est le probleme...) |
Marsh Posté le 15-09-2004 à 16:01:16
machinbidule1974 a écrit : Et bien non, le line.separator te retourne un saut de ligne portable car le line.separator ne retourne pas toujours \n, ça dépend de ta plateforme d'exécution. C'est #10#13 (ou l'inverse) sous Windows mais #10 (ou #13 je sais plus) uniquement sous Unix. |
c'est ça, oui bien sur.
on est donc à 3.
bravo
Marsh Posté le 15-09-2004 à 16:03:31
Mais tu sais que tu commences à me courir sur le haricot, j'en ai fait l'expérience sur mon projet. J'ai commencé à mettre des \n qui marchaient sous Windows mais dès que je suis passé sous AIX, c'était plus bon.
C'est pourquoi j'utilise line.separator
Et arrête de prendre les gens de haut, tu t'en rends peut-être pas compte mais c'est vraiment lourd
Marsh Posté le 15-09-2004 à 16:06:42
bah, euuuh....
Faut savoir de quoi on parle, hein :
Dans ton lien :
Code :
|
mais :
Code :
|
donc, a mon avis, y'a malentendu.
Marsh Posté le 15-09-2004 à 16:08:42
C'est bien System.getProperty("line.separator" ) que j'utilise, désolé si j'ai été peu clair dans les posts précédents
Marsh Posté le 15-09-2004 à 17:56:10
y'a un lien sur le post!
(4 )
Marsh Posté le 15-09-2004 à 17:56:25
the real moins moins a écrit : que sur un objet String ton line separator c'est \n et pas un truc dépendent du systeme, qui n'est interessant que lorsqu'on parse un fichier à la main. |
Marsh Posté le 15-09-2004 à 11:20:11
Salut,
Comment puis-je m'y prendre pour (facilement) trier le contenu d'un StringBuffer contenant des lignes de texte séparées par des "\n" ?