enlever les "\n" - Java - Programmation
Marsh Posté le 02-12-2003 à 20:51:00
pourquoi ?
tu peux le faire à la main si tu veux ... ou avec une regex
Marsh Posté le 02-12-2003 à 22:06:41
bobbyf a écrit : ben un exemple de regex alors merci ! |
ta mère en slip
Marsh Posté le 02-12-2003 à 22:13:30
SchnapsMann a écrit : |
+1
tu veux faire l'idiot avec des solutions compliquées alors que la solution la plus simple est aussi la plus performante : alors t'assumes
Marsh Posté le 02-12-2003 à 23:52:03
en même temps, la méthode replace avec les char ne te permettra pas de faire ce que tu veux et celle avec des chaines ca utilise déjà les regexp ...
comme autre solution, je vois le Stringtokenizer, mais ca sert à quoi de se faire chier à inventer des solutions à la con alors qu'il y a un truc tout fait ?
Marsh Posté le 03-12-2003 à 00:21:26
Taz a écrit : ben les méthodes delete des StringBuffer |
ouais mais ca ca fait un décalage de tous les chars qu'il y a derrière le char que tu vires à chaque delete
Marsh Posté le 03-12-2003 à 00:24:18
ben alors tu peux splitter (avec les méthodes du même nom) puis réassembler. Je sais pas comment son implémenter les StringBuffer, mais si c'est du genre deque, mais du genre liste chaîne de char[], ça coutera vraiment rien du tout. dans le cas contraire, c'est vrai que c'est pourri, autant recopier à la main en sautant les '\n'
Marsh Posté le 03-12-2003 à 00:28:09
le StringBuffer ca doit être un bête tableau de char je pense ...
Marsh Posté le 03-12-2003 à 00:29:49
Taz a écrit : c'est bête effectivement... |
marrant, tu m'avais pas manqué toi ...
Marsh Posté le 03-12-2003 à 00:31:22
non mais ça serait bien d'avoir un conteneur spécifiquement prévu pour les ajouts/suppressions en milieu en temps < o(n)
Marsh Posté le 03-12-2003 à 00:39:04
Taz a écrit : non mais ça serait bien d'avoir un conteneur spécifiquement prévu pour les ajouts/suppressions en milieu en temps < o(n) |
c'est vrai que ca pourrait être sympa dans certains cas, mais ce serait très gourmand également : ca reviendrait à splitter la chaine en plusieurs bout de chaine à chaque delete par exemple => création de très nombreux objets + copie des tableaux de char, etc ...
Ce serait avantageux quand dans de rare cas ...
Dans son cas à lui, le plus efficace c'est de créer un String buffer, de boucler sur sa chaine originale et de copier dans le stringbuffer tout ce qui n'est pas '\n'
Marsh Posté le 03-12-2003 à 00:42:23
* pas forcément. si tu fais une liste de char[taille_fixe] et que pour chaque morceau tu conserves la longueur réelle, et que tu as une politique intelligente de réorganisation et d'allocation, ça tient la route. après tu maintiens un index. ça coute oui, mais dans des cas, pas si rares, je suis sur que ça peut servir. ça me donne envie de le faire, mais pas en java (enfin pas dans un premier temps)
* certes
Marsh Posté le 03-12-2003 à 01:51:26
à titre informatif de ce que je connais en C++
http://www.sgi.com/tech/stl/Rope.html
j'ai fait un petit bench string/crope/vector : effacer les voyelles d'une très longue séquence de caractère, en faisant autant que de parcours qu'il y a des voyelles (genre "aeiouy" -> 6). sur mon exemple
163.664 caractères |
l'implémentation de crope est loin d'être trivial, mais ça vaut le coup. La documentation de SGI recommande se conteneur pour ce genre d'utilisation, comme par exemple un buffer pour un éditeur de texte.
Marsh Posté le 03-12-2003 à 13:34:57
ReplyMarsh Posté le 03-12-2003 à 13:41:14
ben j'ai presque envie, mais le conteneur de SGI, il fait à lui seul 2500 lignes de codes (~100Ko), mais il utilise beaucoup algorithmes de STL en plus... le comprendre ça prendra déjà un peu de temps, mais le recoder ...
Marsh Posté le 03-12-2003 à 13:57:28
nan je pensais une implem toute conne du vector (pas du crope(D'ailleurs j'avais jamais entendu parler de ce truc))histoire de voir
Ensuite on aurait tous pu aller troller gaiement, boire des coups et se mettre des grandes claques dans la gueule, ca aurait ete sympa.
Marsh Posté le 03-12-2003 à 13:58:55
bah je vais voir, faut déjà que je d/l de quoi faire du java
Marsh Posté le 02-12-2003 à 20:48:08
existe-t-il une methode en java qui permet d'enlever tous les "\n" d'une chaine de caractere ,autre que le fait d'utiliser la methode replace ?
merci de me repondre .