CodeGym /Java Blog /Random-IT /Stringhe Java
John Squirrels
Livello 41
San Francisco

Stringhe Java

Pubblicato nel gruppo Random-IT

Cos'è la stringa in Java?

Nella programmazione, le stringhe sono molto comunemente utilizzate. La stringa in Java è un oggetto che rappresenta una sequenza di caratteri supportata da un array di caratteri. La classe String è immutabile in Java e implementa le interfacce Comparable , Serializable e CharSequence . Facciamo un esempio per capire.
String str = "string"
Qui str è la sequenza di 6 caratteri che sono s, t, r, i, n e g.
Indice della matrice di caratteri 0 1 2 3 4 5
Valore S T R io N G
Indirizzo di memoria 0x12824 0x12825 0x12826 0x12827 0x12828 0x12829
Come ora sappiamo l'array è immutabile, il che significa che non può essere modificato dopo l'inizializzazione, quindi anche la stringa è immutabile.

Modi di inizializzazione delle stringhe

Esistono due modi per inizializzare una stringa.
  1. Stringhe letterali
  2. Nuovo operatore

Stringa letterale

Il modo più semplice e diretto per dichiarare una stringa viene utilizzato nell'esempio precedente. Ogni volta che il compilatore interpreta una stringa letterale, viene sempre convertita nell'oggetto String.
String str = "string";

Nuovo operatore

Possiamo anche inizializzare una stringa utilizzando l'operatore new.
String strNew = new String("using new operator");

Esempio

import java.io.*;
import java.lang.*;

class StringInitializationExample {
    public static void main(String[] args)
    {
        //declare java string with a string literal
        String str = "a string literal";

        System.out.println("String str = " + str);

        //declare string using new operator
        String strNew = new String("using new operator");

        System.out.println("String strNew = " + strNew);
    }
}

Produzione

String str = una stringa letterale String strNew = utilizza l'operatore new

String contro StringBuilder contro StringBuffer

Abbiamo già discusso cos'è la classe String, quindi discuteremo delle altre due classi e del loro scopo, insieme al motivo per cui Java ha introdotto queste due classi quando dispone già della classe String per noi. È meglio andare all'inizio e fare una revisione della classe String per comprenderla meglio.

Motivo

Poiché sappiamo che l'oggetto della classe String è immutabile, quindi ogni volta che dobbiamo modificare la stringa non muta mai l'oggetto corrente ma il valore modificato viene sempre memorizzato come un nuovo oggetto String. Quindi, se dobbiamo modificare il valore, ancora e ancora, anche la memoria verrà consumata. Mantenendo questo punto Java ci ha fornito le classi StringBuilder e StringBuffer . Ora vedremo come sono utili in questo scenario.

StringBuffer

String è una rappresentazione di una sequenza immutabile di caratteri ma StringBuffer è una sequenza mutabile di caratteri . Utilizza la maggior parte dei metodi della classe String insieme ad alcuni propri per modificare il contenuto e la sequenza dei caratteri. È thread-safe perché i suoi metodi sono sincronizzati per l'utilizzo da parte di più thread, mantenendo l'ordine seriale. Implementa le interfacce Serializable , Appendable e CharSequence .

Sintassi

StringBuffer str = new StringBuffer("Happy Java Programming");

StringBuilder

StringBuilder rappresenta anche la sequenza mutabile di caratteri. Fornisce un'API compatibile con la classe StringBuffer ma non è thread-safe. Pertanto, quando non sono coinvolti più thread, è meglio utilizzare la classe StringBuilder poiché in molti casi è più veloce della classe StringBuffer . I metodi chiave di questa classe sono insert e append. Implementa inoltre le interfacce Serializable , Appendable e CharSequence .

Sintassi

StringBuilder str = new StringBuilder("Happy Java Programming");

Operazioni sulle stringhe

In Java possiamo eseguire operazioni sulle stringhe come Concatenazione , Confronto , Divisione , Ricerca della lunghezza , Sostituzione di stringhe e così via.

Metodi di stringa

La classe Java String fornisce vari metodi per manipolare le stringhe o eseguire le operazioni sopra discusse. Diamo un'occhiata alla tabella seguente per alcuni di questi metodi di stringa.
Metodi Descrizione
Char charAt(int indice) Restituisce il valore char nell'indice fornito.
Stringa concat(String str) Restituisce una stringa combinando una stringa specificata alla fine di questa stringa.
booleano contiene(CharSequence s) Restituisce vero se la stringa contiene una sequenza specificata di valori di caratteri.
contenuto booleanoUguale(CharSequence cs) Corrisponde alla stringa con la sequenza di caratteri fornita.
contenuto booleanoEquals(StringBuffer sb) Corrisponde alla stringa con il buffer di stringa fornito.
booleano terminaCon(suffisso stringa) Confronta la fine della stringa con il suffisso fornito.
booleano è uguale a(Oggetto anOggetto) Corrisponde alla stringa con l'oggetto fornito.
booleano equivale a IgnoreCase(String anotherString) Questo metodo confronta due stringhe senza prendere in considerazione la distinzione tra maiuscole e minuscole.
Formato stringa statica (formato stringa, oggetto... argomenti) Restituisce la stringa formattata utilizzando il formato e gli argomenti forniti.
byte getBytes() Questo metodo utilizza il set di caratteri predefinito della piattaforma per codificare la stringa in una sequenza di byte, che viene quindi archiviata in un nuovo array di byte.
void getChars(int inizio, int fine, char[] dst, int dstBegin) Copia i caratteri dalla stringa nell'array di caratteri di destinazione.
int hashCode() Restituisce il codice hash per la stringa.
int indiceOf(int ch) Restituisce l'indice del carattere specificato che ricorre per primo nella stringa.
int indiceOf(int ch, int daIndice) Restituisce l'indice per il carattere specificato che ricorre per primo a partire dall'indice fornito in questa stringa.
int indiceOf(String str) Cerca la sottostringa fornita nella stringa e restituisce l'indice alla prima occorrenza.
int indiceOf(String str, int daIndice) Inizia a cercare la sottostringa fornita nella stringa dall'indice specificato e restituisce l'indice alla prima occorrenza.
Stagista String() Questo metodo restituisce la rappresentazione canonica della stringa.
int lastIndexOf(int ch) Questo metodo cerca il carattere fornito nella stringa e restituisce l'indice dell'ultima occorrenza.
int lastIndexOf(int ch, int fromIndex) Questo metodo cerca all'indietro dall'indice fornito il carattere fornito nella stringa e restituisce l'indice dell'ultima occorrenza.
int lastIndexOf(String str) Questo metodo cerca la sottostringa fornita nella stringa e restituisce l'indice dell'ultima occorrenza.
int lastIndexOf(String str, int fromIndex) Questo metodo cerca all'indietro dall'indice fornito la sottostringa fornita nella stringa e restituisce l'indice dell'ultima occorrenza.
lunghezza intera() Questo metodo restituisce la lunghezza della stringa.
corrispondenze booleane (stringa regex) Restituisce vero o falso abbinando la stringa all'espressione regolare fornita.
Sostituisci stringa (char oldValue, char newValue) Questo metodo restituisce una stringa dopo aver sostituito tutti i valori oldValue forniti con newValue nella stringa.
String[] split(String regex) Questo metodo trova tutte le corrispondenze in base all'espressione regolare fornita nella stringa e la divide attorno a queste corrispondenze.
booleano iniziaCon(Prefisso stringa) Restituisce vero o falso testando la stringa che inizia con il prefisso fornito.
String sottostringa(int BeginIndex) Questo metodo restituisce una stringa che è la sottostringa di questa stringa.
Stringa inLowerCase() Converte tutti i caratteri della stringa in minuscolo utilizzando le regole della locale predefinita.
Taglio delle corde() Questo metodo rimuove tutti gli spazi iniziali e finali dalla stringa e la restituisce.
stringa statica valueOf(char c) Restituisce la rappresentazione di stringa dell'argomento char.
Adesso con l’aiuto di qualche esempio vedremo come utilizzarli.

Esempio

import java.io.*;
import java.lang.*;

class JavaStringsExample {
  public static void main(String[] args) {

    //create a string
    String greeting = "Hello! World";
    System.out.println("String: " + greeting);

    //getting the length of greeting object
    int length = greeting.length();
    System.out.println("Length: " + length);

    //create first string
    String first = "Java ";
    System.out.println("First String: " + first);

    //create second string
    String second = "Programming";
    System.out.println("Second String: " + second);

    //joining two strings
    String joinedString = first.concat(second);
    System.out.println("Joined String: " + joinedString);

    String jpf = "Java programming";
    String jps = "Java programming";
    String jpt = "Python programming";

    //compare jpf and jps strings
    boolean result1 = jpf.equals(jps);
    System.out.println("Strings jpf and jps are equal: " + result1);

    //compare jpf and jpt strings
    boolean result2 = jpf.equals(jpt);
    System.out.println("Strings jpf and jpt are equal: " + result2);

    //converting jpf to uppercase
    System.out.println("Upper case jpf: " + jpf.toUpperCase());

    //replacing g character with v in jpf
    System.out.println("Replacing g with v in jpf: "+jpf.replace("g", "v"));
  }
}

Produzione

Stringa: Ciao! Lunghezza mondo: 12 Prima stringa: Java Seconda stringa: Programmazione Stringa unita: Programmazione Java Le stringhe jpf e jps sono uguali: true Le stringhe jpf e jpt sono uguali: false Maiuscolo jpf: PROGRAMMAZIONE JAVA Sostituzione di g con v in jpf: java provramminv

Conclusione

Speriamo che a questo punto tu abbia capito cosa sono le stringhe in Java, le sue classi e come implementare i suoi diversi metodi. Sentiti libero di esercitarti e di tornare ogni volta che hai bisogno di maggiore assistenza. Buon apprendimento!
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION