English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di Base Java

Flow Control in Java

Array in Java

Object-Oriented Programming (I) in Java

Object-Oriented Programming (II) in Java

Object-Oriented Programming (III) in Java

Gestione delle Eccezioni Java

List in Java

Queue (Queue) in Java

Map Collection in Java

Set Collection in Java

Input/Output (I/O) in Java

Reader/Writer in Java

Altri argomenti Java

Stringhe (String) Java

In questo tutorial, impareremo a utilizzare Java String con esempi, come crearla e i suoi vari metodi.

 In Java, una stringa è una serie di caratteri. Ad esempio, "hello" è una stringa che contiene la sequenza di caratteri "h", "e", "l", "l" e "o".

Diversamente da altri linguaggi di programmazione, le stringhe in Java non sono un tipo di base (ad esempio int, char ecc.). Al contrario, tutte le stringhe sono oggetti della classe predefinita chiamata String. Ad esempio,

//crea una stringa
String type = "java programming";

Qui, abbiamo creato una stringa denominata type. Qui, abbiamo inizializzato la stringa con "java programming". In Java, usiamoVirgolette doppiRappresenta una stringa.

Questa stringa è un'istanza della classe String.

Attenzione:Tutte le variabili di stringa sono istanze della classe String.

Metodi di stringa Java

Java String fornisce vari metodi che ci permettono di eseguire diverse operazioni di stringa. Di seguito sono riportati alcuni metodi di stringa comuni.

MetodoDescrizione
concat()Unisci due stringhe insieme
equals()Confronta i valori di due stringhe
charAt()Restituisce il carattere esistente nella posizione specificata
getBytes()Converti la stringa in un array di byte
indexOf()Restituisce la posizione del carattere specificato nella stringa
length()Restituisce la dimensione della stringa specificata
replace()Sostituisci il carattere vecchio specificato con il carattere nuovo specificato
substring()Restituisce un sottostringa della stringa
split()Dividi la stringa in un array di stringhe
toLowerCase()Converti la stringa in minuscolo
toUpperCase()Converti la stringa in maiuscolo
valueOf()Restituisce la rappresentazione in stringa dei dati specificati

Facciamo alcuni esempi.

Esempio 1: Java trova la lunghezza di una stringa

class Main {
  public static void main(String[] args) {
    //Creare una stringa
    String greet = "Hello! World";
    System.out.println("La stringa è: " + greet);
    //controlla la lunghezza della stringa
    System.out.println("La lunghezza della stringa: " + greet.length());
  }
}

Risultato di output

La stringa è: Hello! World
La lunghezza della stringa: 12

Nell'esempio precedente, abbiamo creato una stringa denominata greet. Qui, abbiamo utilizzato il metodo length() per ottenere la dimensione della stringa.

Esempio 2: Java utilizza concat() per connettere due stringhe

class Main {
  public static void main(String[] args) {
    //Creare una stringa
    String greet = "Hello! ";
    System.out.println("Prima stringa: " + greet);
    String name = "World";
    System.out.println("Seconda stringa: " + name);
    //连接两个字符串
    String joinedString = greet.concat(name);
    System.out.println("Stringa connessa: " + joinedString);
  }
}

Risultato di output

Prima stringa: Hello!
Seconda stringa: World
Stringa connessa: Hello! World

Nell'esempio precedente, abbiamo creato 2 stringhe denominate greet e name.

In questo esempio, abbiamo utilizzato il metodo concat() per connettere le stringhe. Pertanto, otteniamo una nuova stringa chiamata joinedString.

In Java, possiamo anche utilizzare l'operatore + per connettere due stringhe.

Esempio 3: Connessione delle stringhe in Java utilizzando l'operatore +

class Main {
  public static void main(String[] args) {
    //Creare una stringa
    String greet = "Hello! ";
    System.out.println("Prima stringa: " + greet);
    String name = "World";
    System.out.println("Seconda stringa: " + name);
    //连接两个字符串
    String joinedString = greet + name;
    System.out.println("Stringa connessa: " + joinedString);
  }
}

Risultato di output

Prima stringa: Hello!
Seconda stringa: World
Stringa connessa: Hello! World

qui abbiamo utilizzato l'operatore + per connettere due stringhe.

Esempio 4: Confronta due stringhe in Java

class Main {
  public static void main(String[] args) {
    //创建字符串s
    String first = "java programming";
    String second = "java programming";
    String third = "python programming";
    //比较第一个字符串和第二个字符串
    boolean result1 = first.equals(second);
    System.out.println("第一和第二个字符串相等: " + result1);
    //比较第一个和第三个字符串
    boolean result2 = first.equals(third);
    System.out.println("第一和第三个字符串相等: " + result2);
  }
}

Risultato di output

第一和第二个字符串相等: true
第一和第三个字符串相等: false

在上面的示例中,我们使用了equals()方法来比较两个字符串的值。

如果两个字符串相同,则该方法返回true,否则返回false。

Attenzione:我们还可以使用 == 运算符 和 compareTo()方法比较2个字符串。

Esempio 5: Ottieni i caratteri da una stringa in Java

class Main {
  public static void main(String[] args) {
    //创建字符串 using the string literal
    String greet = "Hello! World";
    System.out.println("La stringa è: " + greet);
    //Restituisci il carattere alla posizione 3
    System.out.println("Il carattere alla posizione 3: " + greet.charAt(3));
    //Restituisci il carattere alla posizione 7
    System.out.println("Il carattere alla posizione 7: " + greet.charAt(7));
  }
}

Risultato di output

La stringa è: Hello! World
Il carattere alla posizione 3: l
Il carattere alla posizione 7: W

Nell'esempio sopra, abbiamo utilizzato il metodo charAt() per accedere ai caratteri da una posizione specifica.

Esempio 6: Altri metodi delle stringhe Java

class Main {
  public static void main(String[] args) {
    //Crea una stringa utilizzando la parola chiave new
    String example = new String("Hello! World");
    //Restituisci la sottostringa World
    System.out.println("Usando subString(): " + example.substring(7));
    //Converti la stringa in minuscolo
    System.out.println("Usando toLowerCase(): " + example.toLowerCase());
    //Converti la stringa in maiuscolo
    System.out.println("Usando toUpperCase(): " + example.toUpperCase());
    //Sostituisci il carattere '!' con 'o'
    System.out.println("Usando replace(): " + example.replace('!', 'o'));
  }
}

Risultato di output

Usando subString(): World
Usando toLowerCase(): hello! world
Usando toUpperCase(): HELLO! WORLD
Usando replace(): Helloo World

Nell'esempio sopra, abbiamo creato una stringa denominata example utilizzando la parola chiave new.

Qui,

  • Il metodo substring() restituisce la stringa World

  • Il metodo toLowerCase() trasforma una stringa in minuscolo

  • Il metodo toUpperCase() trasforma una stringa in maiuscolo

  • Il metodo replace() sostituisce il carattere '!' con 'o'.

I caratteri di escape nella stringa

Le stringhe in Java utilizzanoVirgolette doppirappresentare.

//Creare una stringa
String example = "This is a string";

Ora, se vogliamo includereVirgolette doppi。 Ad esempio,

//La stringa contiene virgolette doppie
String example = "This is the "String" class";

Questo causerà un errore. Questo è perché si utilizzaVirgolette doppiper rappresentare la stringa. Pertanto, il compilatore lo considera come una stringa "This is the ".

Per risolvere questo problema, in Java si utilizzano i caratteri di escape(\)。Ora possiamo includereVirgolette doppi, come segue:

//Usare i caratteri di escape
String example = "This is the \"String\" class.";

I caratteri di escape informano il compilatore di escapeVirgolette doppiE leggere tutto il testo.

Le stringhe in Java sono immutabili

Creare una stringa in Java significa creare un oggetto della classe string.Non possiamo modificare la stringa durante la creazione di una stringa in Java.Ecco perché in Java si chiamaImmutabileRagione.

Per comprendere meglio, guardiamo un esempio:

//Creare una stringa
String example = "Hello!";

Qui, abbiamo creato un oggetto stringa "Hello!". Dopo la creazione, non possiamo modificarlo.

Ora supponiamo di voler modificare la stringa.

//Aggiungere un'altra stringa a questa stringa
example = example.concat(" World");

Qui, proviamo a aggiungere una nuova stringa alla stringa precedente.

Poiché le stringhe sonoImmutabile, dovrebbe causare un errore. Ma va bene così.

Sembra che possiamo modificare la stringa. Tuttavia, non è così. Vediamo cosa è successo effettivamente qui.

Abbiamo una stringa "Hello!" riferita dalla variabile chiamata example. Ora, eseguendo il codice sopra,

  • La JVM accetta la stringa "Hello!"

  • Aggiungere la stringa "World" a essa

  • Questo creerà una nuova stringa "Hello! World"

  • La variabile example punta ora a una nuova stringa

  • La stringa precedente "Hello!" rimane invariata

Attenzione:ogni volta che creiamo una nuova stringa e la riferiamo con una variabile.

Creazione di una stringa utilizzando la chiave di nuova creazione

Finora abbiamo creato in Java stringhe simili ai tipi di dati di base. Tuttavia, poiché le stringhe in Java sono oggetti, possiamo anche crearle utilizzando la chiave di nuova creazione. Ad esempio,

//Creazione di una stringa utilizzando la chiave di parola new
String name = new String("java string");

Nell'esempio sopra, abbiamo utilizzato la chiave di parola new e il costruttore String() per creare una stringa.

La classe String fornisce vari altri costruttori per creare stringhe.

Ora, vediamo come il processo di creazione della stringa differisce dal processo precedente.

Differenze tra l'uso di espressioni letterali di stringa e la chiave di parola new

Ora che sappiamo come creare stringhe utilizzando espressioni letterali di stringa e la chiave di parola new, vediamo quali sono le principali differenze tra loro.

 In Java, il JVM mantiene una cassetta degli strumenti delle stringhe per memorizzare tutte le stringhe in memoria. La cassetta degli strumenti delle stringhe aiuta a riutilizzare le stringhe.

 Quando si crea una stringa utilizzando un testo di stringa, viene fornito direttamente il valore della stringa. Pertanto, il compilatore verifica prima la cassetta degli strumenti di stringhe per vedere se la stringa esiste già.

  • Se la stringa esiste giànon viene creata una nuova stringa. Invece, il nuovo riferimento punta a una stringa esistente.

  • Se la stringa non esistequindi viene creata una nuova stringa.

 Ma, quando si crea una stringa utilizzando la chiave di parola new, non viene fornito direttamente il valore della stringa. Pertanto, viene sempre creata una nuova stringa.