Cosa devi sapere sull'uso delle stringhe in Java

Cosa devi sapere sull'uso delle stringhe in Java

Una volta che inizi a imparare Java, la classe String catturerà la tua attenzione, grazie alle sue proprietà uniche.





Puoi creare e manipolare stringhe in Java più facilmente rispetto ad altri linguaggi. Questo perché la classe String offre varie funzionalità.





Sulla base di queste funzionalità, esistono diversi metodi per generare e modificare le stringhe a seconda delle preferenze e delle esigenze. Allo stesso modo, molto dipenderà dall'applicazione e da dove devono essere utilizzate le stringhe.





In che modo le stringhe Java sono diverse?

Se hai già lavorato con il linguaggio C, sai che le stringhe in C sono un array di caratteri (caratteri). D'altra parte, le stringhe Java sono immutabili e contengono caratteri Unicode.

Windows 10 eccezione kmmode non gestita

Una delle caratteristiche chiave che rendono uniche le stringhe in Java è la concatenazione. Basta usare l'operatore di addizione + per unire due o più stringhe. Questo è qualcosa che non puoi fare con altri oggetti Java, come Punto o Cerchio .



Inoltre, come accennato in precedenza, le stringhe Java sono immutabili, ovvero non è possibile modificarle. Ad esempio, metodi come in maiuscolo() e in minuscolo() generare una stringa completamente nuova, invece di apportare modifiche al contenuto della stringa esistente. Ora il tuo codice restituirà questa stringa appena generata.

Correlati: Come manipolare il testo in PHP con queste funzioni





Un'altra area in cui le stringhe sono diverse è quando si tratta di utilizzare caratteri null per terminare le stringhe in linguaggi come C. In Java, le stringhe sono oggetti supportati da matrici di caratteri. Se stai cercando di leggere il contenuto della tua stringa nel modo in cui gli array di caratteri li rappresentano, usando il toCharArray() il metodo farà il lavoro.

Il confronto delle stringhe in Java è anche più conveniente che in altri linguaggi di programmazione. Invece di scrivere un lungo blocco di codice per confrontare le stringhe, puoi usare il è uguale a() metodo per confrontare due o più stringhe utilizzate in qualsiasi programma. Questo principalmente perché, in Java, il è uguale a viene sovrascritto dalla classe String, che rende il confronto di stringhe un gioco da ragazzi.





In una nota simile, anche la ricerca all'interno delle sottostringhe in Java è senza problemi. Durante l'utilizzo di espressioni regolari o metodi come lastIndexOf() e indice di(), puoi cercare segmenti di stringhe e restituire valori una volta identificata una corrispondenza. Puoi anche usare le espressioni regolari per tagliare e dividere stringhe diverse e usarle individualmente per un'ampia gamma di usi in qualsiasi programma.

Come vengono archiviate le stringhe nella memoria?

Ora che sai cosa rende le stringhe in Java diverse e vantaggiose, esploriamo la classe String. Se conosci una o due cose sulla gestione della memoria in Java, allora devi aver avuto a che fare con le sue due entità chiave: heap e stack.

Lo stack viene utilizzato per eseguire processi e operazioni dopo essere stato chiamato da un programma Java, mentre l'heap archivia il contenuto, necessario per eseguire ed eseguire il codice in modo efficace. Quindi, in che modo la gestione della memoria è rilevante nel caso delle stringhe?

Questo perché la classe String e i letterali stringa in Java ricevono un trattamento diverso. Ciò indica che ai valori letterali stringa viene assegnato uno spazio di archiviazione univoco nella memoria heap, denominato String Constant Pool. Pertanto, ogni volta che si utilizzano valori letterali stringa per creare oggetti stringa in Java, lo String Constant Pool li memorizza.

Al contrario, quando si utilizza il nuovo parola chiave per creare oggetti stringa, Java li tratterà come qualsiasi altro oggetto e li invierà all'heap per l'archiviazione.

Esempio di stringhe letterali

Ora che conosci abbastanza gli oggetti stringa, esaminiamo un esempio di letterali stringa:


public class muostrings {
public static void main(String args[])
{
String himuo = 'Hello World from MUO';
System. out .println (himuo);
}
}

Qui, il letterale stringa ha creato l'oggetto String con i contenuti Hello World da MUO. Java invierà questo oggetto allo String Constant Pool.

Utilizzo della nuova parola chiave

Puoi anche usare il nuovo parola chiave per generare oggetti String.

L'oggetto stringa della stringa himuo con il contenuto Hello World di MUO è stato generato da un letterale stringa e verrà inviato allo String Constant Pool. Allo stesso modo, gli oggetti stringa possono essere creati anche utilizzando la parola chiave new come segue:


public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}

L'esempio sopra usa il nuovo parola chiave per creare un oggetto stringa. Come spiegato in precedenza, vengono inviati all'heap, dove vengono memorizzati con altre variabili e oggetti in attesa di essere eseguiti dal programma.

A questo punto, devi essere curioso dello String Constant Pool, e giustamente. Assegna lo spazio del pool agli oggetti in base al contenuto dell'oggetto stringa. Dopo che lo String Constant Pool riceve gli oggetti, li controlla per verificare se due oggetti contengono esattamente lo stesso contenuto.

Due oggetti stringa possono memorizzare gli stessi contenuti?

Quando una stringa letterale viene utilizzata per creare un nuovo oggetto, Java Virtual Machine (JVM) esamina il contenuto dell'oggetto e valuta se esiste già nel pool. Quando un oggetto contiene contenuto già presente nel pool, il riferimento dell'oggetto viene restituito senza creare il nuovo oggetto. Se devi creare il nuovo oggetto, devi assicurarti che il contenuto sia distinto e unico.

Tuttavia, se usi il nuovo parola chiave per creare una nuova stringa, verrà elaborata in modo diverso. Quando usi il nuovo parola chiave per creare una nuova stringa, verrà generata, indipendentemente dal fatto che contenga gli stessi contenuti della stringa esistente.

Ciò indica che due oggetti stringhe esistenti archiviati nella memoria heap possono comportare gli stessi contenuti; questo è diverso dagli oggetti stringa archiviati nello String Constant Pool. Puoi anche dimostrarlo con l'operatore ==; restituisce true se vengono confrontati due oggetti con lo stesso indirizzo fisico.


public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = 'muo1';
String secondLiteral = 'muo1';
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String('muo2');
String secondKeyword = new String('muo2');
System. out .println(firstKeyword == secondKeyword);
}
}

Ora puoi capire facilmente le stringhe in Java

In questo articolo, hai appreso come le stringhe in Java sono diverse, i modi per utilizzare le stringhe in Java, la gestione della memoria delle stringhe in Java e altri dettagli importanti su come funzionano le stringhe. Per testare la tua comprensione, perché non scrivere un programma Java per concatenare due stringhe?

Condividere Condividere Tweet E-mail Imparare Python? Ecco come manipolare le stringhe

L'uso e la manipolazione delle stringhe in Python può sembrare difficile, ma è ingannevolmente semplice.

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Giava
Circa l'autore Usman Ghana(4 articoli pubblicati)

Usman è un marketer di contenuti che ha aiutato diverse aziende con una crescita organica su piattaforme digitali. Gli piace sia la programmazione che la scrittura, il che significa che la scrittura tecnica è qualcosa che gli piace molto. Quando non lavora, Usman si diverte a guardare programmi TV, seguire il cricket e leggere informazioni sull'analisi dei dati.

Altro da Usman Ghani

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti