Console 4: String: le stringhe


   Per comunicare, mandiamo, per esempio verso l'output, dei messaggi, cioè delle stringhe. Un esempio per tutti: "Hello world!"
Si potrebbe dire che una stringa è una catena di caratteri. In Java una stringa è un oggetto. Cos'è un oggetto? In un primo tempo si potrebbe dire così: un oggetto è una copia di un programma. Qualcuno ha scritto un programma chiamato String, questo programma ha le sue variabili globali, i suoi metodi. Ogni volta che si crea una stringa, ci si procura una copia di quel programma. Più precisamente, ogni volta che si crea una stringa, viene riservato in memoria uno spazio per eseguire quel programma. Tocca poi a noi inizializzare le variabili ed "eseguire" il programma (all'interno di un programma più ampio). Passiamo ai dettagli. Per dichiarare una variabile S come una variabile String, basta digitare:

String S;

Come al solito questo riserva (in informatichese si dice: "allocca") dello spazio in memoria per la variabile S, ma niente di più (il "valore" della stringa a questo punto è "null" (=nullo)). Formalmente per inizializzare (dare un valore) ad una stringa si può fare così:

String S;
S = new String("Ciao!");

L'operatore "new" crea l'oggetto (in informatichese: "crea un'istanza della classe"; consultare un vocabolario per capire cosa significa "istanza"; è una parola difficile). In altre parole "new" crea una copia del programma, riserva dello spazio in memoria per quella copia (che diventa una variabile) e inizializza i dati iniziali del programma (cioè dà un (dei) valore (valori) alla variabile).

La classe String, però, gode di uno statuto particolare e perciò ammette alcune semplificazioni, per esempio:

String S = "Ciao!";

dichiara ed inizializza S come variabile String con valore: Ciao!

A questo punto S è una variabile di tipo String, con valore: Ciao! (eccezionalmente non serve l'operatore new).

Alla luce di queste spiegazioni si potrebbe riscrivere il codice di "HelloWorld.java" nel modo seguente:


  public class HelloWorld{

  public static void main(String[] arg){
  
  String S = "Hello World!";

  System.out.println(S);
	  }
  }


O ancora:


  public class HelloWorld{

  public static void main(String[] arg){
  
  String S = new String("Hello World!");  //questa è la forma forse più corretta

  System.out.println(S);
	  }
  }


Alcuni metodi (=alcune operazioni) sulle stringhe.

Concattenamento (o addizzione):

Due stringhe possono essere concatenate:

String S = "Hello";

String T = "World!";

String C = S+T; //C vale "Hello World!"

int e String:

Un int può essere facilmente trasformato in una String:

int x = 2;

String S = "Il piu' piccolo numero pari positivo e': ";

String T = S+x; //il valore di T è: "Il più piccolo numero pari positivo e': 2"

Altro esempio:

//....codice (che parla di Z)

int x = 23;

System.out.println("Il valore di Z e': "+x); //stampa sullo schermo: "Il valore di Z e' 23"