Esercitazione 3: la classe String

Generalmente una stringa è una sequenza di caratteri. In java, una stringa è un oggetto della classe String che rappresenta una sequenza di caratteri. La classe Java.lang.String è usata per creare oggetti di tipo stringa.

Documentazione oracle Classe String

Come creare una stringa?

Ci sono almeno due modi per creare questi oggetti:

  • La stringa letterale creta con le virgolette
  • 1. String s = “Hello”;
  • La parola chiave new
  • 2. String s = new String(“Hello”);
    equivalente anche a char data[] = {'H', 'e', 'l',’l’,’o’};

Istanza nel pol

La sintassi utilizzata al punto 1 consente al programmatore di scrivere codice più velocemente, rendendo implicita l’invocazione dell’operatore new. Le stringhe sono costanti; i loro valori non possono essere modificati dopo che sono state create. Quindi modificare una stringa consiste nel distruggere l’oggetto esistente e crearne uno nuovo. Ogni volta che si crea una stringa mediante una costante letterale la JVM controlla prima il "pool di costanti di stringa". Se la stringa esiste già nel pool, viene restituito un riferimento all'istanza nel pool. Se la stringa non esiste nel pool, viene creata e inserita nel pool una nuova istanza di stringa. Per esempio:
1. String s = “Hello”;
2. String p = “Hello”; //non si crea una nuova istanza

Creando la stringa con la parola chiave new
String s = new String(“Hello”);
la JVM creerà un oggetto stringa nella memoria heap normale. La variabile s farà riferimento all’oggetto nell’heap.

L'operatore<<+>>usato con le variabili tipo String consente di concatenare tra loro due stringhe
String a="abc";
String d="def";
a=a+b;
System.out.println(a);
output>>abcdef

La classe String fornisce molti metodi utili per manipolare sequenze di caratteri

# Metodo Descrizione
1 char charAt(int index) Restituisce il valore del carattere alla posizione indicata da index
2 int length() Restituisce la lunghezza della stringa
3 String substring(int beginIndex) Restituisce la sottostringa per un dato indice di inizio.
4 String substring(int beginIndex, int endIndex) Restituisce la sottostringa per l'indice di inizio e l'indice di fine dati.
5 boolean equals(Object another) Controlla l'uguaglianza della stringa con l'oggetto dato.
6 boolean isEmpty() Controlla se la stringa è vuota.
7 String replace(char old, char new) Sostituisce tutte le occorrenze del valore char specificato.
8 String replace(CharSequence old, CharSequence new) Sostituisce tutte le occorrenze della CharSequence specificata.
9 String toLowerCase() Restituisce una stringa in minuscolo.
10 String toUpperCase() Restituisce una stringa in maiuscolo.
Prompt dei comandi

usa le finestre di dialogo per risolvere gli esercizi seguenti.

Input/Output mediante finestre di dialogoEsercitazione 2.5: I/O in JAVA mediante finestre

Esercizio 1

Scrivere un programma Java che effettua le seguenti operazioni:
• Fa inserire all’utente una stringa s;
• Visualizza all’utente il numero totale di caratteri di s;
• Chiede all’utente di inserire due posizioni intere a e b, tali che a < b e comprese tra
0 e la lunghezza di s meno 1 (il programma assume che l’utente inserisca
correttamente i dati, cioè non deve eseguire controlli di correttezza);
• Visualizza all’utente la sottostringa di s compresa tra a (incluso) e b (escluso).

Esercizio 2

Scrivere un programma Java che chiede all’utente di inserire due stringhe e che visualizza all’utente true se le stringhe sono uguali e false se sono diverse.

Esercizio 3

Scrivere un programma che fa inserire all’utente una frase f ed una stringa s, e che visualizza all’utente true se s è una sottostringa di f e false altrimenti. Il programma deve inoltre visualizzare all’utente una frase equivalente ad f ma in cui tutte le lettere sono in maiuscolo.