170 likes | 350 Views
Programmazione in Java. Claudia Raibulet raibulet@disco.unimib.it. Stringhe. Sono definite come sequenze di caratteri String è una classe (quindi un tipo non primitivo) che permette di memorizzare le stringhe
E N D
Programmazione in Java Claudia Raibulet raibulet@disco.unimib.it
Stringhe • Sono definite come sequenze di caratteri • String è una classe (quindi un tipo non primitivo) che permette di memorizzare le stringhe • String è una classe particolare che si può utilizzare in modo simile ad un tipo primitivo: si può dichiarare una variabile di questo tipo e assegnarli un valore senza dover creare un oggetto • Osservazione: essendo una classe inizia con una maiuscola!!! String s = “Corso di Informatica”;
Osservazione • Non è possibile definire una stringa che occupa più di una riga!!! String s = “Oggi abbiamo lezione dalle 10.30”;
char vs. String • Una variabile di tipo char può contenere un unico carattere • Una variabile di tipo String contiene una sequenza di caratteri char c = ‘a’; String s = “Domenica”; String str = ‘x’; //NO!!!!!!!!!!!!!!
Esercizio 1 • Si chiede di scrivere sullo standard output la lunghezza della stringa “Domenica” e della stringa vuota: String s = “Domenica”; System.out.println(“Lunghezza stringa = “ + s.length()); String s1 = “”; System.out.println(“Lunghezza stringa vuota” + s1.length());
Esercizio 2 • Che cosa sara’ stampato sullo standard output? String s1 = “Oggi”; String s2 = “Domani”; String s3 =s1.concat(s2); System.out.println(“s3 = “ + s3); • Equivalente a: s3= “”; s3=s1+s2; System.out.println(“s3 = “ + s3);
Esercizio 3 • Che cosa sara’ stampato sullo standard output? String s1 = “Oggi”, s2 = “Domani”; String s5; boolean s3; S3 = s1.equals(s2); System.out.println(“Sono le stringhe uguali? “ + s3); S5 = “Oggi”; s3 = s1.equals(s5); System.out.println(“Sono le stringhe uguali? “ + s3);
Esercizio 4 • Che cosa sara’ stampato sullo standard output? String s1 = “Corso di programmazione”; String s2, s3; s2 = s1.substring(6,8); s3 = s1.substring(9); System.out.println(“La stringa s2: “ + s2); System.out.println(“La stringa s3: “ + s3);
while • Sintassi generale: • Osservazione: il “;” non si mette dopo la condizione!!! while (condizione) { istruzione1; istruzione2, … }
for • Sintassi generale: • Osservazione: il “;” non si mette dopo la condizione!!! for (inizializzazioni; condizione; incremento) { istruzione1; istruzione2, … }
while vs. for • Si chiede di scrivere 10 volte sullo schermo la stringa “corso di infomatica”. String s = “corso di informatica”; int i; i=0; while (i<10) { System.out.println(s); i++; } String s = “corso di informatica”; int i; for (i=0; i<10; i++) { System.out.println(s); }
Esercizio 1 • Dandosi un valore intero positivo n, si chiede di calcolare n! (fattoriale di n) int n = 10, x = n; int fattoriale = 1; while ( n >= 1 ) { fattoriale = fattoriale * n; n--; } System.out.println(“Fattoriale di " + x + “ = " + fattoriale);
Esercizio 2 • Dandosi una stringa si chiede di stampare quanti spazi contiene, oppure il messaggio “non ci sono spazi” se la stringa non contiene nessun spazio. String s=“Ieri e oggi e domani”; int noSp = 0, index=0; while ( index < s.length() ) if ( s.charAt(index++) == ‘ ‘ ) noSp++; if ( noSp>0 ) System.out.println(“Numero spazi = “ + noSp); else System.out.println(“Non ci sono spazi”);
Esercizio 3 • Dandosi una stringa si chiede di scriverla al contrario. Esempio: Ciao -> oaiC String s=“Ciao”; int index=s.length()-1; while ( index >= 0) System.out.print(s.charAt(index--)); System.out.println();