
Stringhe
Una stringa in informatica è una cassettiera con un ordine prestabilito. Sequenze di altri tipi di dato sono i cassetti o in inglese, array.
Può essere composta da byte nel caso delle stringhe con codifica ASCII o da word per le codifiche Unicode e UTF.
Spesso la sequenza di dati di cui è composta una stringa viene conclusa con un carattere speciale denominato NULL (come nel linguaggio C) che serve ad indicare la fine della stringa, anche se esistono diversi metodi di rappresentazione, alcuni dei quali utilizzano un diverso terminatore oppure si appoggiano ad altri sistemi per la determinazione della lunghezza (ad esempio un dato contenente la lunghezza della stringa immagazzinato a parte).
In molti linguaggi di programmazione, come ad esempio Java oppure C# la stringa, per motivi di sicurezza, è un oggetto non modificabile (in Java è addirittura non estendibile). Questo vuol dire che ogni qualvolta viene assegnato un nuovo valore ad una stringa (operazione di concatenazione, rimozione o aggiunta caratteri) in realtà vengono create nuove stringhe.
Ad esempio, in C++, l’istruzione :
string a = "abc" + "def";
in realtà crea 4 stringhe: la stringa per rappresentare a, quella per rappresentare “abc”, quella per rappresentare “def” e infine quella per immagazzinare il valore temporaneo “abcdef”. Proprio per questo motivo linguaggi come Java e C# mettono a disposizione altri oggetti, come StringBuffer o StringBuilder che permettono operazioni sulle stringhe più veloci e meno onerose in termini di utilizzo della memoria.