Stringhe

9
Stringhe Operare con le stringhe con l’aiuto degli array

description

Stringhe. Operare con le stringhe con l’aiuto degli array. Stringhe. La stringa è un tipo di dati formato da una successione di caratteri. Il letterale stringa viene messo tra apici o virgolette "Questo è un letterale stringa" 'Anche questo' '123' (non è il numero 123!) - PowerPoint PPT Presentation

Transcript of Stringhe

Page 1: Stringhe

Stringhe

Operare con le stringhe con l’aiuto degli array

Page 2: Stringhe

Stringhe

• La stringa è un tipo di dati formato da una successione di caratteri.

• Il letterale stringa viene messo tra apici o virgolette"Questo è un letterale stringa"'Anche questo''123' (non è il numero 123!)'' (due apici consecutivi=stringa vuota)

• Fare attenzione, se si usano gli apici, che la stringa non contenga apostrofi. Dà errore la posizione

'Mario ha comprato un'automobile'• Ad una variabile si può assegnare un valore di

stringax = 'Mario';

Page 3: Stringhe

Proprietà delle stringhe

• L’operatore + messo tra stringhe le concatena

x= 'Buon giorno, '

y = 'Mario'

alert(x+y) // mostra 'Buon giorno, Mario'

• Il numero di caratteri di una stringa viene rilevato da

length

La proprietà viene rilevata con la notazione puntata

applicata ad un letterale o ad una variabile stringa.

Notare che gli spazi sono caratteri e vengono contati!

alert("oggi è lunedì".length); // mostra 13

x="questa stringa è lunga 35 caratteri";

alert(x.length);

Page 4: Stringhe

Come accedere ai caratteri di una stringa

Ogni carattere di una stringa ha una posizione, che va da 0 alla lunghezza della stringa meno 1. Esempio "oggi è lunedì".

Un carattere di una stringa viene letto con la funzione charAt(n)

dove tra parentesi viene messo il numero che indica la posizione del carattere da leggere. La funzione viene applicata con la notazione puntata.Provare x="oggi è lunedì";

alert(x.charAt(8)); // mostra u

carattere 0,1, … 12 (la stringa ha 13 caratteri!)

Page 5: Stringhe

Memorizzare i caratteri di una stringa in un array

•Se si vuole operare sui caratteri delle stringhe, conviene generare un array è riempirlo con i caratteri della stringa.

•In questo modo, avendo a disposizione i caratteri della stringa separati uno dall'altro possiamo elaborare quanto richiesto dal problema

•Lo script memorizza i caratteri della stringa s nell'array a

var a = new Array();s = "ciao, come va?";for (k=0;k<s.length;k++)

a[k] = s.charAt(k);

Page 6: Stringhe

Esempio 1- Invertire una stringa

• Data una stringa, si vuole generare la stringa formata con i caratteri della stringa presi al contrario (dall'ultimo al primo)

• Supponiamo che la stringa sia s = "ciao, come va?";

• Con il ciclo riempiamo l'array con i suoi 14 caratteri 'c' 'i' 'a' 'o' ',' ' ' 'c' 'o' 'm' 'e' ' ' 'v' 'a' '?'

• Inizializziamo una stringa vuota, che è quella che memorizza i caratteri al contrario

r ='';

• Con un ciclo che parte dall'ultimo elemento dell'array a aggiungiamo a r il carattere a[k]

r = r + a[k]

(ricordare che il + tra stringhe le concatena)

Page 7: Stringhe

Esempio 1- Invertire una stringa

• Lo script

var a = new Array();s = "ciao, come va?";for (k=0;k<s.length;k++) // l'array a memorizza

a[k] = s.charAt(k); // i caratteri della stringar = ''; // la stringa r al contrario è

vuotafor (k=a.length-1;k>=0;k--) // il ciclo comincia dalla

fine dell'arrayr = r + a[k]; // + attacca il carattere a r

alert(r);

Page 8: Stringhe

Esercizi

1. Nell'esempio precedente, fare in modo che la stringa di cui viene costruita la inversa venga inserita dall'utente del programma con una finestra di prompt(provare cosa succede con 'I TOPI NON AVEVANO NIPOTI')

2. Data una stringa costruire la stringa contenente gli stessi caratteri della stringa, ma sostituendo le vocali con uno spazio.Ad esempio, se la stringa è "siamo in febbraio" deve produrre "s m n f bbr"Può essere usata per un giochino scemo del tipo "indovina la frase se te la faccio vedere senza vocali".

3. Data una stringa, costruire la stringa ottenuta inframmezzando uno spazio tra ciascun carattere della stringa data.Se ad esempio la stringa è "CASA", lo script deve produrre la stringa "C A S A"

Page 9: Stringhe

Esercizi

4. Data una stringa costruire la stringa contenente gli stessi caratteri della stringa, ma sostituendo le lettere con dei punti di domanda (?) e lasciando gli spazi bianchi al loro posto.Ad esempio, se la stringa è "siamo in febbraio" deve produrre "????? ?? ????????"E' circa quello che viene fatto vedere inizialmente ai concorrenti del gioco televisivo "Gira la ruota"

5. Data una stringa, chiedere all'utente un carattere (finestra di prompt) e mostrargli solo i caratteri della stringa uguali a quello introdotto, sostituendo gli altri con il punto di domanda (?) e lasciando gli spazi bianchi al loro posto. Ad esempio, se la stringa è "siamo in febbraio" e l'utente inserisce una 'a' gli si deve mostrare "??a?? ?? ?????a??"