Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 5.169 pregleda

Najnovija ↓

String i StringBuilder 14.04.2005. u 23:38 · pre 262 meseca #1
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?
Re: String i StringBuilder 15.04.2005. u 03:15 · pre 262 meseca #2
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.
Potpis
Lepota je u jednostavnosti.

Cis.
Re: String i StringBuilder 15.04.2005. u 10:00 · pre 262 meseca #3
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).
Re: String i StringBuilder 15.04.2005. u 15:54 · pre 262 meseca #4
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
Potpis
Linux is like wigwham, no windows, no gates and apache inside...
Re: String i StringBuilder 15.04.2005. u 17:05 · pre 262 meseca #5

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
Re: String i StringBuilder 15.04.2005. u 21:39 · pre 262 meseca #6
Evo, Željko je sve rekao. I rest my case!
Potpis
Lepota je u jednostavnosti.

Cis.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme