Sobes.tech
Junior

Parlami della classe String nel linguaggio di programmazione che conosci.

sobes.tech AI

Risposta dell'AI

Nel contesto di Java, String è una classe immutabile che rappresenta una sequenza di caratteri. Gli oggetti String vengono creati, ad esempio, utilizzando letterali o l'operatore new.

Caratteristiche:

  • Immutabilità: Dopo aver creato un oggetto String, il suo contenuto non può essere modificato. Qualsiasi operazione che sembri modificare la stringa (ad esempio, la concatenazione) in realtà crea una nuova stringa. Questo garantisce la sicurezza durante l'uso con thread e tabelle hash.
  • Pool di stringhe: Per i letterali di stringa, la JVM Java utilizza un'area di memoria speciale chiamata pool di stringhe. Se una stringa con lo stesso contenuto esiste già nel pool, la JVM utilizza un riferimento a quell'oggetto invece di crearne uno nuovo. Questo ottimizza l'uso della memoria.
  • Sovraccarico dell'operatore +: L'operatore + per le stringhe viene usato per la concatenazione.
  • Molti metodi utili: La classe String fornisce un'ampia gamma di metodi per lavorare con le stringhe: ottenere la lunghezza (.length()), confronto (.equals(), .equalsIgnoreCase()), ricerca di sottostringhe (.contains(), .indexOf()), estrazione di sottostringhe (.substring()), sostituzione di caratteri (.replace()), conversione in maiuscolo/minuscolo (.toUpperCase(), .toLowerCase()), rimozione degli spazi (.trim()) e altri.

Esempi:

Creazione di stringhe:

// Creazione usando letterale - collocato nel pool di stringhe
String s1 = "Hello";

// Creazione usando new - viene creato un nuovo oggetto fuori dal pool
String s2 = new String("World");

// Concatenazione di stringhe
String s3 = s1 + " " + s2;

Esempio di immutabilità:

String originale = "abc";
String modificato = originale.concat("def"); // Viene creata una nuova stringa

// originale rimane "abc"
System.out.println(originale); // Output: abc
// modificato - nuova stringa "abcdef"
System.out.println(modificato); // Output: abcdef

Metodi importanti:

String testo = "  Example String  ";

// Lunghezza della stringa
int lunghezza = testo.length(); // 18

// Confronto tra stringhe
boolean èUguale = testo.equals("  Example String  "); // true

// Confronto ignorando maiuscole/minuscole
boolean èUgualeIgnoreCase = testo.equalsIgnoreCase("  example string  "); // true

// Ricerca di sottostringa
boolean contiene = testo.contains("String"); // true
int indice = testo.indexOf("String"); // 10

// Estrazione di sottostringa
String sottostringa = testo.substring(10, 16); // String

// Sostituzione di caratteri
String sostituito = testo.replace(" ", "-"); // --Example-String--

// Rimozione degli spazi
String trimmato = testo.trim(); // Example String

String è ampiamente usato in Java per rappresentare informazioni testuali ed è una classe fondamentale per l'elaborazione delle stringhe.