Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10....

24
Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe in Java: java.lang.String G. Grossi 18 ottobre 2006 G. Grossi Lezione 2

Transcript of Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10....

Page 1: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Le stringhe in Java: java.lang.String

G. Grossi

18 ottobre 2006

G. Grossi Lezione 2

Page 2: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Indice

1 Bestiario della sintassi!

2 Oggetti StringUso di oggetti String

3 Metodi della classe StringCaratteri e sottosringhe

G. Grossi Lezione 2

Page 3: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Indice

1 Bestiario della sintassi!

2 Oggetti StringUso di oggetti String

3 Metodi della classe StringCaratteri e sottosringhe

G. Grossi Lezione 2

Page 4: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Indice

1 Bestiario della sintassi!

2 Oggetti StringUso di oggetti String

3 Metodi della classe StringCaratteri e sottosringhe

G. Grossi Lezione 2

Page 5: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Bestiario ...

Che cosa sarebbe la sintassi senza la semantica ...!?

G. Grossi Lezione 2

Page 6: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Bestiario ...

G. Grossi Lezione 2

Page 7: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Bestiario ...

G. Grossi Lezione 2

Page 8: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Bestiario ...

G. Grossi Lezione 2

Page 9: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe String

Bestiario ...

G. Grossi Lezione 2

Page 10: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Indice

1 Bestiario della sintassi!

2 Oggetti StringUso di oggetti String

3 Metodi della classe StringCaratteri e sottosringhe

G. Grossi Lezione 2

Page 11: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Comporre la data odierna

ProblemaScrivere un programma Java che letti da stdin giorno, mese eanno restituisca il seguente output:

grossi[lez02/java]->java ComponiDataOdiernaInserisci il giorno: 18Inserisci il mese: 10Inserisci l’anno: 2006La data odierna e: 18/10/2006 (10)

nel formato gg/mm/aaaa (<num caratteri>)

G. Grossi Lezione 2

Page 12: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Soluzione (I)

Suddividere il problema in passi elementari ...

1 importare le classi per l’input/output2 dichiarare le variabili necessarie3 assegnare il valore alle vars mediante lettura da input4 calcolare il numero caratteri digitati5 stampare l’output

Vedi il programma ComponiDataOdierna.java ...

G. Grossi Lezione 2

Page 13: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Soluzione (II)

Una soluzione piu raffinata ...

1 importare le classi per l’input/output2 definire solo le variabili realmente necessarie e nel punto

in cui vengono usate per la prima volta (unione dei punti 2e 3 precedenti)

3 calcolare il numero caratteri digitati desumendoli davariabli gia assegnate

4 stampare l’output

Vedi il programma ComponiDataOdierna1.java ...

G. Grossi Lezione 2

Page 14: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Analisi

Quanti oggetti di tipo String vengono creati nella I e nella IIsoluzione?

String

String

String

String

String

"La data odierna e’: "

mese

giorno

anno

"18"

"10"

"2006"

"/"

G. Grossi Lezione 2

Page 15: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Analisi

Quanti oggetti di tipo String vengono creati nella I e nella IIsoluzione?

String

String

String

String

String

"La data odierna e’: "

mese

giorno

anno

"18"

"10"

"2006"

"/"

G. Grossi Lezione 2

Page 16: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Analisi (2)

Come si concatena la costruzione dell’oggetto (stringa) finale?

String

"18"

String

"/"

String

"10"

String

"/"

String

"2006"

data

String

"La data odierna e’: 18/10/"

String

"La data odierna e’: 18/10"

String

"La data odierna e’: 18/"

String

"La data odierna e’: 18"

String

"La data odierna e’: "

String

"La data odierna e’: 18/10/2006"

G. Grossi Lezione 2

Page 17: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Analisi (2)

Come si concatena la costruzione dell’oggetto (stringa) finale?

String

"18"

String

"/"

String

"10"

String

"/"

String

"2006"

data

String

"La data odierna e’: 18/10/"

String

"La data odierna e’: 18/10"

String

"La data odierna e’: 18/"

String

"La data odierna e’: 18"

String

"La data odierna e’: "

String

"La data odierna e’: 18/10/2006"

G. Grossi Lezione 2

Page 18: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringUso di oggetti String

Codifica

“E’ noto che i migliori scrittori a volte infrangono leregole della retorica. Quando lo fanno, tuttavia, illettore coglie nella frase qualcosa che compensa laviolazione della regola stessa. Se non si e certi diriuscire a fare altrattanto, probabilmente e meglioseguire le regole.”

The elements of style

G. Grossi Lezione 2

Page 19: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringCaratteri e sottosringhe

Indice

1 Bestiario della sintassi!

2 Oggetti StringUso di oggetti String

3 Metodi della classe StringCaratteri e sottosringhe

G. Grossi Lezione 2

Page 20: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringCaratteri e sottosringhe

Metodi di String

public char charAt(int indice)Restituisce il carattere specificato dall’indice. Il primo

carattere e all’indice 0, il secondo a 1, ... l’ultimo alength() - 1. Causa un errore se il valore dell’indice

negativo o maggiore di length() - 1.

public char trim()Restituisce la stringa ripulita dai caratteri spazio posti intesta e in coda alla stringa stessa.

G. Grossi Lezione 2

Page 21: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringCaratteri e sottosringhe

Metodi di String

public String substring(int beginIndex)

public String substring(int beginIndex, intendIndex)Restituisce una nuova stringa che e sottostringa di“questa”. La sottostringa inizia all’indice specificatobeginIndex e si estende al carattere di indice endIndex- 1. Quindi la lunghezza della sottostringa eendIndex-beginIndex.

G. Grossi Lezione 2

Page 22: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringCaratteri e sottosringhe

Metodi di String

public int indexOf(int ch)Restituisce l’indice della prima occorrenza del caratterespecificato. Se il carattere non esiste restituisce -1

public int lastIndexOf(int ch)Restituisce l’indice dell’ultima occorrenza del caratterespecificato. Se il carattere non esiste restituisce -1

public int toLowerCase()Converte tutti i caratteri della stringa in caratteri minuscolipublic int toUpperCase()Converte tutti i caratteri della stringa in caratteri maiuscoli

G. Grossi Lezione 2

Page 23: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringCaratteri e sottosringhe

Analisi dell’URL

ProblemaScrivere un programma Java che dato un URL (UniformDescription Language) risponda alle seguenti questioni:

Q.1 stampa i caratteri primo/ultimoQ.2 stampa il protocollo in MAIUSCOLOQ.3 stampa estensione del file caricato in minuscoloQ.4 stampa il Nome del serverQ.5 rimpiazza il protocollo con un nuovo protocolloQ.6 rimpiazza vecchio simbolo con un nuovo simbolo

G. Grossi Lezione 2

Page 24: Le stringhe in Java: java.lang.Stringprog.di.unimi.it/laboratorio/lezioni/lez02.pdf · 2006. 10. 19. · Bestiario della sintassi! Oggetti String Metodi della classe String Le stringhe

Bestiario della sintassi!Oggetti String

Metodi della classe StringCaratteri e sottosringhe

Soluzione

R.1) Primo/ultimo: h/pR.2) Protocollo: HTTPR.3) File caricato: phpR.4) Nome server: www.unimi.itQ.5) Nuovo Protocollo? httpsR.5) Nuovo URL: https://www.unimi.it/index.phpQ.6) Nuovo simbolo? WQ.6) Vecchio simbolo? wR.6) http://WWW.unimi.it/index.php

Vedi il programma URL.java ...

G. Grossi Lezione 2