Stringhe

Diamo un nome alle cose!

Dichiarazione e inizializzazione

In java le stringhe sono oggetti, quindi le operazioni che possono essere fatte con questi tipi di dati sono incluse in una classe. Una stringa è una sequenza finita di caratteri.

Immaginiamo di avere una stringa s che contiene la frase <<Ecco la stringa>>.

Per la dichiarazione:

  • String s;

Per l'inizializzazione:

  • String s = "Ecco la stringa";
  • String s = new String("Ecco la stringa");

Input & Output

L'input si fa in questo modo:

  • s = in.nextLine( );  // Per ottenere la stringa intera
  • s = in.next( );  // Per ottenere solo la prima parola

dove in è lo Scanner.

L'output si fa semplicemente:

  • System.out.print(s);

Metodi principali

[Length]

Per ottenere la lunghezza della stringa:

  • lunghezza = s.length( ); // metto in una variabile la lunghezza della stringa s

[CharAt]

Per estrarre un carattere da una stringa s:

  • carattere = s.charAt(0); // metto in una variabile il carattere in prima posizione, di indice 0
  • carattere = s.charAt(6); // metto in una variabile il carattere in settima posizione, di indice 6


    Avrete sicuramente notato che anche gli spazi vengono visti come caratteri. Proprio parlando degli spazi, esistono due modi per rappresentarli:

    1. String s = "Ecco la stringa";
    2. String s = "Ecco\0la\0stringa";

    Quindi potrei utilizzare \0 per indicare uno spazio. Questo non può sembrare così utile, però in alcuni casi lo è: per esempio, immaginiamo di voler verificare se c'è una sola frase in una stringa.

    String stringa = "C'è solo una frase... o forse no?";

    Questa stringa non è voluta a caso: si potrebbe pensare di contare i punti, ma qui abbiamo i punti di sospensione e il punto di domanda. Quindi dobbiamo trovare un'altra soluzione:

    String stringa = "C'è solo una frase...\0o forse no?\0";

    Ora contando gli \0 possiamo individuare quante frasi ci sono nella nostra stringa.

    [ConCat][+]

    La concatenazione di due stringhe è la fusione in un'unica stringa. Si ottiene in due modi:

    1. Uso di concat
    2. Uso dell'operatore +

    Vediamo il primo modo:

    • String s1 = "Ciao";
    • String s2 = "Mamma"
    • String s3;
    • s3 = s1.concat(s2);

    Vediamo il secondo modo:

    • String s1 = "Ciao";
    • String s2 = "Mamma"
    • String s3;
    • s3 = s1 + s2;

    In entrambi i modi in output avrò "CiaoMamma".

    [SubString]

    Ora un altro metodo: substring  che restituisce parte di una stringa. Ecco la sintassi:

     s1 = s2.substring(a,b);

    dove s1 e s2 sono due stringhe, a è l'indice iniziale e b è l'indice finale escluso.

    Consideriamo un esempio:

    • String s1;
    • String s2  = "chiacchere";
    • s1 = s2.substring(0,4);

    Allora in s1 ci sarà "chia".

    [IndexOf][LastIndexOf]

    Servono per verificare la presenza o meno di un carattere o di una sottostringa in una determinata stringa. In particolare IndexOf restituisce il primo indice in cui ha trovato il carattere o la sottostringa, mentre LastIndexOf restituisce l'ultimo. Se la ricerca fallisce entrambi i metodi restituiscono -1. Chiariamo con un esempio:

    Abbiamo una stringa s che contiene "Ieri ho giocato a carte con il nonno".

    • a = s.indexOf('e');            // a = 1
    • b = s.lastIndexOf('c');      // b = 24
    • c = s.indexOf("ca");         // c = 18
    • d = s.lastIndexOf("no");  // d = 35
    • e = s.indexOf("Oggi");    // e = - 1
    • f = s.lastIndexOf('z');       // f = - 1

    [ValueOf]

    Esegue la conversione di variabili primitive (int, float, char...) in stringhe.

    • s = String.valueOf(42);  // Mette 42 nella stringa s
    • t = String.valueOf('c');  // Mette il carattere "c" nella stringa t

[Equals]

Controlla se due stringhe sono uguali. Restituisce un boolean (true o false). Vediamo un esempio: supponiamo di avere tre stringhe s1, s2 e s3 di cui s1 = s2.

  • System.out.println(s1.equals(s2)); // Stampa a video "true"
  • System.out.println(s1.equals(s3));  // Stampa a video "false"
  • if(s1.equals(s3))                                                                                                   System.out.println("Stringhe uguali");                                                          System.out.println("Stringhe diverse"); 

Nel terzo caso l'output sarà "Stringhe diverse". Qui viene fuoriesce il concetto di boolean, dove se una certa condizione è vera esegue la prima istruzione altrimenti esegue la seconda.

javaperstudenti.webnode.it
Creato con Webnode
BUILT WITH WEBNODE Like this website? Yours can be live today. Like this website? Yours can be live today. Describe your idea, AI builds the first draft. No code, free to start.