Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

String i StringBuilder

[es] :: .NET :: String i StringBuilder

[ Pregleda: 3918 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Voodoo
Novi Beograd

Član broj: 3508
Poruke: 488
*.neobee.net.



+1 Profil

icon String i StringBuilder14.04.2005. u 22:38 - pre 231 meseci
Nov sam u C#-u (ali nisam u Delphiju) pa me malo buni postojanje tipova String i StringBuilder. Koliko sam shvatio, String predstavlja fiksan niz, a svaka modifikacija u stvari pravi novi (takodje fiksan) niz i premesta pokazivac na njega, dok je StringBuilder analogan AnsiStringu u Delphiju (dinamicki "lanac" znakova koji se menja svakom modifikacijom, interno izveden tako da svaki element cini znak i pokazivac na adresu sledeceg elementa). Da li gresim i gde?
 
Odgovor na temu

Mrav
Aleksandar Mraović
.net programer u Wireless Media
Beograd

Član broj: 6532
Poruke: 279
*.freeserbia.sezampro.yu.

ICQ: 197419540


Profil

icon Re: String i StringBuilder15.04.2005. u 02:15 - pre 231 meseci
StringBuilder podržava više operacija za ubacivanje i nastavljanje stringa, kao i izbacivanje delova.

U praksi treba ga koristiti kada treba napraviti veći ili kompleksniji string, zapravo on se koristi kao neka vrsta bafera u koji ćeš ispisati ono što ti je potrebno (recimo html sadržaj strane, mada postoje i klase prilagođene baš za ovo), a onda ga "flushovati" metodom ToString(), dok se običan String ponaša više kao klasičan niz znakova.

Što se tiče tvojih konstatacija u vezi alokacije Stringa, potpuno su tačne, String predstavlja niz Char-ova, a svaka operacija koja menja njegov sadržaj u stvari vraća referencu na novoalocirani String.
Lepota je u jednostavnosti.

Cis.
 
Odgovor na temu

Voodoo
Novi Beograd

Član broj: 3508
Poruke: 488
*.neobee.net.



+1 Profil

icon Re: String i StringBuilder15.04.2005. u 09:00 - pre 231 meseci
Zahvaljujem.

Pretpostavljao sam da onda treba koristiti StringBuilder za operacije gde se barata velikim stringovima koji se cesto menjaju (recimo citanje tekstualnog fajla znak po znak i upisivanje u string).
 
Odgovor na temu

dezelin32
Aleksandar Dezelin
Informatika
Beograd

Član broj: 33723
Poruke: 60
*.informatika.com.

ICQ: 294745833
Sajt: dezelin.blogspot.com


Profil

icon Re: String i StringBuilder15.04.2005. u 14:54 - pre 231 meseci
Citat:
Pretpostavljao sam da onda treba koristiti StringBuilder za operacije gde se barata velikim stringovima koji se cesto menjaju (recimo citanje tekstualnog fajla znak po znak i upisivanje u string).


StringBuilder koristis kad god hoces da postignes bolje performanse u baratanju stringovima, a i fleksibilniji je za recimo konkatenaciju stringova u petlji. Ima bolje performanse u odnosu na operacije tipa System.String i zauzima duplo manje memorije pri standardnim operacijama kao sto je konkatenacija.

string a = new string[1000];
string b = new string[2000];

string c = a + b; je sporije i uzima priblizno duplo vise memorije nego:

StringBuilder builder = new StringBuilder();
builder.Append(a);
builder.Append(b);
string c = builder.ToString();

Ziveli,
Aleksandar Dezelin
Linux is like wigwham, no windows, no gates and apache inside...
 
Odgovor na temu

Željko
Željko Turbić
top of the mountain

Član broj: 16217
Poruke: 89
195.252.81.*



+6 Profil

icon Re: String i StringBuilder15.04.2005. u 16:05 - pre 231 meseci

Samo da potvrdim tvrdje Mrav-a i dezelin32-a, iz licnog iskustva mogu reci da StringBuilder klasa ima neuporedivo bolje performanse pri operacijama sa velikim stringovima.

pozdrav Željko
 
Odgovor na temu

Mrav
Aleksandar Mraović
.net programer u Wireless Media
Beograd

Član broj: 6532
Poruke: 279
*.smin.sezampro.yu.

ICQ: 197419540


Profil

icon Re: String i StringBuilder15.04.2005. u 20:39 - pre 231 meseci
Evo, Željko je sve rekao. I rest my case!
Lepota je u jednostavnosti.

Cis.
 
Odgovor na temu

[es] :: .NET :: String i StringBuilder

[ Pregleda: 3918 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.