webForumDet fria alternativet

Replace

.NET

6 svar · 392 visningar · startad av Vide

Medlem sedan dec. 19998 577 inlägg
Frågan#1

Hejsan igen ;)

Finns det någon Replace-funktion som fungerar på strängar (alltså inte Char eller via RegEx)... försöker jag använde metoden Replace på en sträng och försöker ersätta två strängar (fler än en bokstav), så får jag felmeddelandet att jag ger fel argument...

Mvh, Vide

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan maj 2001329 inlägg
#2

Av någon anledning så finns det bara en Replace funktion och denna byter bara ut char mot char i en sträng. Så vad man får göra är helt enkelt Insert och Remove.

------------------
//Grynet

Medlem sedan dec. 19998 577 inlägg
#3

Ah, oki...

Är det då mer prestandakrävande att använda sig utav RegEx än den metoden du angav?

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan maj 2001329 inlägg
#4

Nej det tror jag inte..hade faktiskt aldrig sett RegEx förut :)

------------------
//Grynet

Medlem sedan dec. 19998 577 inlägg
#5

hehe... oki...

Jaja, får väl bygga en egen Replace-class, som man kan göra lite mer med... ;)

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan apr. 20003 971 inlägg
#6

Använd StringBuilder. Det är en dynamisk sträng till skillnad mot string som är statisk. Varje gång du vill förändra en string måste en ny allokeras. Därför finns Replace-funktionen endast i StringBuilder.

RegExp ska du undvika om du inte behöver det eftersom det kräver mycker mer prestanda än en vanlig sök och ersätt-funktion.

------------------
- Swey
A hacker from the south

Medlem sedan dec. 19998 577 inlägg
#7

Aha, där ser man... tackar för det... :)

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)