Ogni stringa in java è un oggetto: cioè dovremo utilizzarle in modo un po' diverso dalle altre variabili (che si
chiamamo tipi primitivi come gli int o i double ecc...)
Per il fatto che la stringa è un oggetto dovremo utilizzare dei metodi (funzioni) appositi per l'oggetto.
Cominciamo dalla dichiarazione di una stringa:
String nome;
Ho dichiarato "nome" come una variabile oggetto di tipo stringa, ma non la ho inizializzata a nessun valore.
String nome = "Saretta";
La stessa cosa di prima ma in più ho inizializzato la variabile.
String nome;
.......codice vario........
nome = "Simone";
Ho dichiarato una variabile stringa "nome" e poi nel codice le ho assegnato il valore "Simone".
E' evidente che per quanto riguarda la parte di dichiarazione e di assegnazione le stringhe non differiscono
dai tipi primitivi.
Ma come facciamo per confrontare due stringhe?
String nome1 = "Pinco";
String nome2 = "Pallino";
int a = nome1.compareTo( nome2 );
Il metodo compareTo confronta in modo lessicografico (ossia confronta i codici di ogni lettera) le
stringhe e restituisce:
0 se le stringhe sono uguali
un valore maggiore di zero se la stringa con cui abbiamo invocato il metodo (nome1, in questo caso) viene
dopo la stringa data in argomento (quella tra parentesi)
un valore minore di zero se la stringa con cui abbiamo invocato il metodo viene
prima della stringa data in argomento
String nome1 = "Pinco";
String nome2 = "Pallino";
boolean isEqual = nome1.equals( nome2 );
Il metodo equals confronta le due stringhe e restituisce True se sono uguali, False altrimenti.
Usando allo stesso modo il metodo equalsIgnoreCase, verrà ignorata la differenza tra maiuscole a minuscole:
cioè "A" sarà considerata uguale a "a"
Ok ora sappiamo come confrontare due stringhe ma come manipolo stè stringhe?
Ecco alcuni dei metodi più utili:
substring(int inizio, int fine) : Questo metodo estrae dall'interno di una stringa un'altra stringa , partendo dalla lettera che occupa la posizione numero inizio fino a quella che occupa la posione numero fine
Es.
String nome = "Clarabella";
String nome1 = nome.substring(1,5);
Cosa conterrà nome1 ? Semplice partiamo da 1 (in "Clarabella") e arriviamo fino a 5: "larab"
NB. il numero di lettere di una stringa si conta partendo da zero(la prima lettera sarà la lettera 0 e non la lettera 1)
length() : Questo metodo ritorna la lunghezza della stringa
Es.
int a = "simone".length();
a sarà uguale a 6
toUpperCase() : converte tutta la stringa in lettere MAIUSCOLE
toLowerCase() : converte tutta la stringa in lettere minuscole
trim() : ritorna una stringa sena gli spazi iniziali e finali
toCharArray() : ritorna un array di caratteri ( char[] ) con all'interno le lettere di cui è composta la stringa
valueOf( tipo var) : ritorna la rappresentazione a stringa dell'argomento che può essere di un qualunque tipo : int, double, float, char, boolean, long, oggetto
Come concatenare due o più stringhe tra loro:
String nome1 = "Simone";
String nome2 = "Pippo";
String newNome = nome1 + nome2;
newNome sarà uguale a "SimonePippo".
Se vogliamo inserire in una stringa dei valori che non sono di tipo stringa non occore convertirli prima perchè
questa operazione viene svolta automaticamente.
String nome1 = "Simone";
int anno = 82;
String newNome = nome1 + anno;
Adesso newNome sarà uguale a "Simone82".
Come infarinatura generale sulle stringhe penso possa bastare, a voi il compito di approfondire ulteriormente ;-)