Doubler string

genebaud Messages postés 23 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 20 février 2006 - 14 avril 2005 à 19:07
genebaudg Messages postés 1 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 9 mai 2005 - 9 mai 2005 à 15:05
bonjour
je cherche une methode pour faire ceci :
computer -----> ccoommppuutteerr
j'ai essayé avec 1 tableau, copiant 2 fois la chaine et en essayant de trier avec une variable temporaire mais ça marche pas comme je veux
faut il passer par 2 tableaux ou autre solution ?
merci

18 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 avril 2005 à 19:26
Salut,

Par exemple :
string simple = "computer";
StringBuilder sb = new StringBuilder(2*simple.Length);
foreach ( char car in simple )
{
sb.AppendFormat("{0}{0}", car);
}
string strDouble = sb.ToString();

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 avril 2005 à 19:33
Tres jolie solution coq !

Je la garde en mémoire si jamais, ca peut toujours servir et j'aurais pas a me casser la tete pour la trouver.



C'est dommage qu'on ai pas une option pour mettre des topics du forum en "favoris" comme pour les codes sources

Mx
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 avril 2005 à 19:48
Rhalalala ce coq, il est épatant!

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 avril 2005 à 19:52
C'est clair.

Son titre de MVP C# est amplement mérité. (Je sous entend pas qu'il
l'est pas pour les autres hein :p ) Mais en tout cas, C#, il maitrise,
et il en fait bien profiter tout le monde.

Mx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
genebaud Messages postés 23 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 20 février 2006
14 avril 2005 à 20:11
merci c'est tout bon
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 avril 2005 à 20:39
Valide la réponse alors

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 avril 2005 à 21:01
Bon en fait je m'étais toujours dit qu'il fallait que je vérifie les perfs d'AppendFormat, je viens de le faire, c'est la cata lol

Utilisez plutot 2 Append à la suite :
StringBuilder sb = new StringBuilder(2*simple.Length);
foreach ( char car in simple )
{
sb.Append(car);
sb.Append(car);
}

Sur une petite chaine on sent rien mais essayez avec un bon 10 000 000 caractères, on voit tout de suite la différence

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 avril 2005 à 21:03
J'espere que t'as pas effectué ce test depuis ton post plus haut, parce
que sinon ca voudrait dire que ce serait vraiment lent ^^

Mx
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 avril 2005 à 21:16
Si si, il a fait tourner entre 19:26:11 et 21:01:34 lol !

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 avril 2005 à 21:20
Maintenant faut faire un DateTime.Substract()

Mx
0
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
14 avril 2005 à 22:50
Mais ...

string simple = "computer";
string strDouble = "";
for( int i = 0; i < simple.Length; strdouble+=simple[i]+simple[i] );

N'aurait pas pu fonctionner ??

Eric
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 avril 2005 à 23:29
Arg !!!
Surtout pas de concatenation de chaine.
Juste pour le fun je vais donner les temps avec mes 10 000 000 caractères (a coup de DateTime, pas besoin d'etre plus précis) :

Méthode AppendFormat : 7 secondes
Méthode "deubeule" Append : 0.9 secondes
Méthode concaténation : 1min25s => et ça c'est pour 100 000 (les 10M j'ai pas la patience ^^)

Vous choisissez quoi ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 avril 2005 à 23:35
Ah sinon ricklekebekoi : tu as oublier d'incrémenter i dans ta bloucle, donc ça risque d'etre vraiment très long :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
15 avril 2005 à 01:19
juste par curiositer, j'ai le fleme de tester :P le sb.AppendFormat(...); fait pareil que sb.Append(string.Format(...)); ?
0
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
15 avril 2005 à 02:07
oui pas faux, jai écrit sa vite :p

Sinon merci pour l'info, je savais pas.

Eric
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 avril 2005 à 08:51
Il serait bon que visual studio 2005 indique a l'utilisateur d'utiliser
StringBuilder par un warning, quand il rencontre une concaténation de
chaine, en fait. Y'a pas énormément de personne qui sont au courant de
ce souci de performances.



Mx
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 avril 2005 à 10:24
sebseb42 : oui, tu fais juste le formattage à l'exterieur.
Mais au final ça doit être pareil niveau perfs.

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
genebaudg Messages postés 1 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 9 mai 2005
9 mai 2005 à 15:05
Bonjour, de passage par hasard sur ce site je découvre votre prénom (enfin je suppose) qui est aussi le mien. D'ou vous vient-il, avez-vous connaissance de l'existence d'autres genebaud ?
Je laisse mon adresse perso au cas ou ...
[mailto:genebaud.gerandal@nordnet.fr genebaud.gerandal@nordnet.fr]

a bientôt j'espère.
Génebaud
0
Rejoignez-nous