6. Stringhe

Per inizializzare una stringa in ActionScript 3 è sufficiente assegnare una serie di caratteri ad una variabile, racchiudendoli fra doppi apici " o fra apici singoli '.

Le righe di codice che seguono sono quindi valide entrambe.

var stringa1 = 'ciao';
var stringa2 = "ciao";

Le stringhe verranno comunque considerate come tali anche se formate da nessun carattere, purchè vi sia la presenza degli apici.

var stringa1 = "";
var stringa2:String;

trace(stringa1); // La stringa è vuota e non produce alcun output
trace(stringa2); // Output : null

trace(typeof(stringa1)); // Output : string
trace(typeof(stringa2)); // Output : string

Le stringhe vengono quindi gestite come un tipo di dato nativo, anche se il linguaggio ci da pieno accesso alla classe di appartenenza.

La classe String è costituita da svariati metodi molto utili e dalla proprietà length di sola lettura, che indica di quanti caratteri è composta la stringa.

Personalmente, essendo abituato alla programmazione orientata agli oggetti, preferisco trattare le stringhe come oggetti, inizializzando le istanze mediante il costruttore della classe.

var saluto:String = new String("Ciao!!");
trace(saluto.length); // Output : 6

Classe String

Passerò velocemente in rassegna i metodi che ritengo di maggior rilievo.
Per una lista e dettagliata vi rimando alla documentazione ufficiale.

  • charAt() - Permette di leggere il carattere alla posizione specificata, fungendo come l'operatore di accesso [] degli array.
  • concat() - Concatena uno o più elementi alla fine della stringa.
  • indexOf() - Restituisce l'indice della prima occorrenza della stringa specificata.
  • match() - Cerca la corrispondeza di una stringa o di un'espressione regolare.
  • replace() - Analoga a match() ma sostituisce il risultato con la stringa specificata.
  • search() - Analoga a indexOf() ma supporta anche le espressioni regolari.
  • substr() - Restituisce una sottostringa a partire dall'indice specificato fino al numero di caratteri stabilito.
  • split() - Restituisce un array di sottostringhe ottenute dividendo la stringa principale per ogni corrispondenza di uno specifico delimitatore. Il delimitatore può essere anche è un'espressione regolare.

Se non siete pratici di programmazione ad oggetti, che illustrerò nei capitoli a seguire, la sintassi corretta per richiamare questi metodi è accodare un punto al nome dell'istanza di una stringa, seguito dal nome del metodo in questo modo :

var stringa:String = new String("Flash");
var concatenazione = stringa.concat(" ", "CS3", " e ", "ActionScript", " ", "3");

trace(stringa); // Output : Flash
trace(concatenazione); // Output : Flash CS3 e ActionScript 3