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
Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia