Laboratorio Matematica e Informatica Esercitazione 10 Andrea Valsecchi, Lorenza Manenti {andrea.valsecchi, lorenza.manenti}@disco.unimib.it
Argomenti trattati Introduzione alle Stringhe Metodi utilizzabili Esercizi
Le Stringhe String s = “Corso di Programmazione”; Una stringa è una sequenza di caratteri racchiusa tra “doppi apici“. String è una classe (quindi un tipo non primitivo) Osservazione: essendo una classe inizia con una maiuscola!!! Per manipolare stringhe si usano i metodi della classe String. String s = “Corso di Programmazione”; I caratteri all’interno di una stringa hanno una posizione ordinata e numerata a partire da 0. Nell’esempio sopra, i caratteri sono 23 inclusi gli spazi vuoti e sono numerati quindi da 0 a 22.
char vs String Una variabile di tipo char è un tipo primitivo. Contiene un unico carattere, tra virgolette singole. Una variabile di tipo String è una CLASSE. Contiene una sequenza di caratteri. Può contenere anche un solo carattere, ma sempre tra doppie virgolette. char c = ‘a’; String s = “Domenica”; String st = ‘x’; //NO!!!!!!!!!!!!!! String st = “x”; //SI!!!!!!!!!!!!!!
ALCUNI METODI DELLA CLASSE STRING String s=“Buona Giornata”; dichiarazione e inizializzazione Metodo che restituisce la lunghezza della stringa: s.length() System.out.println(s.length()); 14 Metodo che restituisce il carattere in una specifica posizione : s.charAt(int) System.out.println(s.charAt(1)); [u] System.out.println(s.charAt(s.length())); [String index out of range] Metodo che confronta due stringhe: s.equals(string) System.out.println(s.equals(“Buona Giornata”)); [true] System.out.println(s.equals(“Buona giornata”)); [false] System.out.println(“Buona Giornata”.equals(s)); [true]
Riassunto ALCUNI METODI DELLA CLASSE STRING Restituisce la sottostringa di s1 dall’indice begin all’indice end s1.substring(begin, end) String substring(String) Confronta se due stringhe sono uguali s1.equals(s2) boolean equals(String) Restituisce il carattere alla posizione specificata c=charAt(3) char charAt(int) Restituisce il n. di caratteri di una stringa n=s.length() int length() Descrizione Uso Tipo restituito Nome metodo
CONCATENAZIONE
CONCATENAZIONE concatenazione fra stringhe: String s1= “Oggi”; String s2= “abbiamo lezione” System.out.println(s1+s2); Se vogliamo introdurre uno spazio? aggiungiamo: “ “ System.out.println(s1+ “ “+s2); Oggiabbiamo lezione Oggi abbiamo lezione concatenazione fra variabili numeriche: int n= 5; double d=2.45; System.out.println(n+d); come cambia se concateniamo aggiungendo uno spazio? System.out.println(n+ “ “+d); 5 2.45 7.45
ESEMPIO nd n+d Cosa viene stampato a seguito di queste due istruzioni? int n= 5; double d=2.45; System.out.println(“n”+”d”); System.out.println(“n+d”); nd n+d
concatenazione e somma aritmetica int a=2; double b=3.2; double somma; String s= "La somma e’: "; somma = a+b; System.out.println(s+somma); System.out.println(s+a+b); La somma e’: 5.2 La somma e’: 23.2 System.out.print (s); System.out.println(a+b); La somma e’: 5.2 System.out.println(s+(a+b)); La somma e’: 5.2
concatenazioni 107 int ‘3’+’7’ “37” String 3+”7” ‘3’+ “7” “3”+”7” “3+7” 10 3+7 valore Tipo di dato espressione
ESERCIZIO sapendo che ‘a’ è codificato nell’alfabeto UNICODE con 97, specificare come è codificato b, e quali sono gli output a monitor delle istruzioni che seguono. ‘a’ 97 ‘b’ 98 char c1='a'; char c2='b'; int n1,n2,n3; n1=c1; n2=c2; n3=c1+c2; System.out.println(n1+" "+n2+n3); System.out.println(n1+n3); System.out.println(c1); System.out.println(“n3”); 97 98195 292 a n3
ESERCIZIO char a=‘a’; char c; int n = a; c=(char)a++; System.out.println(a); System.out.println(c); System.out.println(n+” “+c); System.out.println(n+c); b a 97 a 194
Riassunto ALCUNI METODI DELLA CLASSE STRING Restituisce la sottostringa di s1 dall’indice begin all’indice end s1.substring(begin, end) String substring(String) Confronta se due stringhe sono uguali s1.equals(s2) boolean equals(String) Restituisce il carattere alla posizione specificata c=charAt(3) char charAt(int) Restituisce il n. di caratteri di una stringa n=s.length() int length() Descrizione Uso Tipo restituito Nome metodo
ESEMPIO STRINGHE String s = “Domenica”; System.out.println(“Lunghezza stringa = “ + s.length()); String s1 = “”; System.out.println(“Lunghezza stringa vuota = ” + s1.length()); --------------------------------------------------------------------------------- String s1 = “Oggi”, s2 = “Domani”; String s5; boolean s3; s3 = s1.equals(s2); System.out.println(“Sono uguali le stringhe? “ + s3); s5 = “Oggi”; s3 = s1.equals(s5); 8 false true
Esercizio 8 Dandosi due stringhe si chiede di verificare se una rappresenta la parte iniziale o la parte finale dell’altra stringa. String s1 = "Oggi", s2 = "Oggi e domani"; if (s1.length() < s2.length()) if (s1.equals(s2.substring(0, s1.length()))) System.out.println(s1 + " sottostringa di " + s2); else ….