© M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 GESTIONE DEL TESTO.

Slides:



Advertisements
Presentazioni simili
Corso di INFORMATICA DI BASE
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Java Stream e File.
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
Package Utilizzo classi.
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Semantiche dei linguaggi di programmazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Raffaella Rizzi DISCO Dipartimento di Informatica Sistemistica e Comunicazione Edificio U14 - primo piano - stanza.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica per Giurisprudenza
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Scomposizione di stringhe
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
I numeri relativi by iprof.
Laboratorio di Calcolo I 1) Introduzione Università Roma Tre Corso di Studi in Fisica AA 2002/03.
Tipi di dato Fondamentali. Tipi numerici int: interi, senza parte frazionaria double: numeri in virgola mobile (precisione doppia) 1, -4, 0 0.5, ,
Strutture di controllo in C -- Flow Chart --
Argomenti della lezione
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
19 Lezione 21/5/04 Composizione dell'immagine 1 COMPOSIZIONE DELLIMMAGINE.
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
Java come linguaggio di programmazione
Ad opera di: Matteo Donatelli e Maurizio Di Paolo Presentazione su : Elettropneumatica 1.
1 Incapsolamento (intro) Sandro Pedrazzini Approfondimento Incapsolamento (introduzione)
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Conversione da base 10 a base X (Utilizzo della pila)
© M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti A.A Package.
Le eccezioni F. Bombi 01/11/ Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Astrazione procedurale ed eccezioni
Date, Calendar, GregorianCalendar, SimpleDateFormat
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Programmazione ad oggetti
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Tipi primitivi in java tipodefaultmem.daa booleanfalse1 bittrue false char'\u0000'16 bit byte08 bit short016 bit int032 bit-2^312^31-1.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Gestione dei thread in Java
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Esercitazione sull’ ordinamento 20 maggio 2003
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Eccezioni in Java. Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel linguaggio allo scopo.
Transcript della presentazione:

© M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti A.A GESTIONE DEL TESTO

2 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Argomenti della lezione Linguaggio naturale Il pakage java.text

3 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Linguaggio naturale

4 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Interfacce utente Un programma comunica con i suoi utilizzatori Attraverso immagini, suoni e testi I messaggi non sono sempre completamente predefiniti Spesso il loro contenuto è parametrico Anche lutente comunica Utilizza segni convenzionali: omovimenti del mouse, sequenze di caratteri Occorre riconoscerne il significato

5 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Comunicazione testuale Sfrutta il linguaggio naturale dellutilizzatore È legata alla sua cultura Lingua adottata, convenzioni di rappresentazione Impone pesanti vincoli quando occorre realizzare programmi multiculturali

6 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Sintesi di messaggio Un messaggio testuale è composto da una sequenza di caratteri In parte prefissati In parte determinati in fase di esecuzione Occorre tenere presenti le regole della sintassi Concordanze (genere, numero, persona, …)

7 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti //Restituisce il messaggio adattato String getMessage(int i) { String s; String s; if (i!=1) if (i!=1) s=.; s=Sono stati letti +i+ elementi.; else else s=; s=È stato letto un elemento.; return s; return s;} //Restituisce il messaggio adattato String getMessage(int i) { String s; String s; if (i!=1) if (i!=1) s=.; s=Sono stati letti +i+ elementi.; else else s=; s=È stato letto un elemento.; return s; return s;}

8 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Rappresentare i numeri Le classi wrapper offrono il metodo statico toString(…) Restituisce la stringa corrispondente al parametro Non si può controllare la formattazione oNumero di cifre, separatore decimale, notazione, …

9 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Analisi di testi Estremamente più complessa Occorre suddividere, a priori, il testo in unità elementari In alcuni casi occorre trattare informazioni strutturate Data, ora, valuta, … La disposizione ed il contenuto dipendono dalla cultura dellinterlocutore

10 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti StringTokenizer st = new StringTokenizer( Questa è una prova); while (st.hasMoreTokens()) System.out.println(st.nextToken()); StringTokenizer st = new StringTokenizer( Questa è una prova); while (st.hasMoreTokens()) System.out.println(st.nextToken()); Questa è unaprova unaprova Scandire una stringa Si può usare la classe java.util.StringTokenizer Suddivisione basata sugli spazi Pochi controlli disponibili

11 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Analizzare un numero Le classi wrapper offrono metodi per convertire stringhe in numeri Integer.parseInt(String val) Double.parseDouble(String v) Possono lanciare NumberFormatException Basati sulla rappresentazione anglosassone String s=123,456; double d; try { d=Double.parseDouble(s); } catch (NumberFormatException nfe) { d=0.0; } String s=123,456; double d; try { d=Double.parseDouble(s); } catch (NumberFormatException nfe) { d=0.0; }

12 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Confronto La classe String offre il metodo compareTo Basato sulla rappresentazione UNICODE dei caratteri Non fornisce i risultati attesi con le lettere accentate

13 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Internazionalizzazione Fattori da gestire quando si realizzano versioni per più culture Messaggi Componenti grafici Suggerimenti Suoni Colori Icone Numeri (valute/misure) Data/ora Indirizzi Numeri telefonici Impaginazione

14 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Culture La classe java.util.Locale modella in ambito culturale specifico In termini di lingua e nazione La conoscenza del locale permette di adattare le operazioni di analisi e sintesi

15 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti String getMessage() { Locale loc=Locale.getDefault(); //formato ISO 639: codice a due lettere String lang=loc.getLanguage(); String msg; if ( it.equals(lang) ) msg=Premere ; else msg=Press ; return msg; } String getMessage() { Locale loc=Locale.getDefault(); //formato ISO 639: codice a due lettere String lang=loc.getLanguage(); String msg; if ( it.equals(lang) ) msg=Premere ; else msg=Press ; return msg; }

16 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Il package java.text Insieme di classi specializzate nella gestione del testo Analisi/sintesi/confronto Numeri, date, messaggi testuali In dipendenza di una cultura specifica (Locale)

17 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti java.text. Format format(…) parseObject(…) Decimal Format Choice Format SimpleDate Format Date Format Number Format Message Format

18 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti NumberFormat Fornisce metodi per lanalisi e la sintesi di valori numerici: Numeri frazionari Percentuali Valuta Fornisce risultati differenti in funzione della cultura indicata

19 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti String getValue(double d) { Locale loc=Locale.ITALIAN; NumberFormat nf= NumberFormat.getNumberInstance(loc); String s=nf.format(d); return s; } String getValue(double d) { Locale loc=Locale.ITALIAN; NumberFormat nf= NumberFormat.getNumberInstance(loc); String s=nf.format(d); return s; } getValue(99.95)99,95getValue(99.95)99,95

20 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti double parse(String s) throws ParseException { Locale loc=Locale.ITALIAN; NumberFormat nf= NumberFormat.getNumberInstance(loc); Number n=nf.parse(s); return n.doubleValue(); } double parse(String s) throws ParseException { Locale loc=Locale.ITALIAN; NumberFormat nf= NumberFormat.getNumberInstance(loc); Number n=nf.parse(s); return n.doubleValue(); } parse(99,95)99.95parse(99,95)99.95

21 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti String getPrice(double d) { Locale loc=Locale.ITALIAN; NumberFormat nf= NumberFormat.getCurrencyInstance(loc); String s=nf.format(d); return s; } String getPrice(double d) { Locale loc=Locale.ITALIAN; NumberFormat nf= NumberFormat.getCurrencyInstance(loc); String s=nf.format(d); return s; } getPrice(99.95) getPrice(99.95)

22 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti DateFormat Analisi e rappresentazione di data e/o ora Diversi formati (breve, medio, lungo, completo) Permette di impostare il fuso orario (time zone) Supporta calendari arbitrari (di classe java.util.Calendar)

23 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti String getTime(Date d) { Locale loc=Locale.ITALIAN; DateFormat df= DateFormat.getTimeInstance( DateFormat.SHORT, loc); String s=df.format(d); return s; } String getTime(Date d) { Locale loc=Locale.ITALIAN; DateFormat df= DateFormat.getTimeInstance( DateFormat.SHORT, loc); String s=df.format(d); return s; } getTime( new Date())

24 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti MessageFormat Classe che offre funzionalità sofisticate per costruire ed analizzare messaggi Utilizza una stringa di formato ed un array di parametri Simile alla funzione sprintf() del linguaggio C

25 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti String getMsg(String s, int i) { String pattern= La cartella {0} contiene {1} file; MessageFormat mf= new MessageFormat(pattern); Object[] args= new Object[] {s, new Integer(i)}; return mf.format(args)); } String getMsg(String s, int i) { String pattern= La cartella {0} contiene {1} file; MessageFormat mf= new MessageFormat(pattern); Object[] args= new Object[] {s, new Integer(i)}; return mf.format(args)); } getMsg(c:\,3) La cartella c:\ contiene 3 file

26 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti Collator Classe specializzata nel confrontare stringhe in un dato linguaggio Riordina le lettere accentate, in modo da garantirne lopportuna sequenza Offre vari livelli di precisione nel confronto

27 © M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti String[] parole= {Squadra,sì, si}; Locale loc= Locale.ITALIAN; Collator c= Collator.getInstance(loc); c.setStrength(Collator.SECONDARY); Arrays.sort(parole,c); for (int i=0; i<parole.length; i++) System.out.println(parole[i]); String[] parole= {Squadra,sì, si}; Locale loc= Locale.ITALIAN; Collator c= Collator.getInstance(loc); c.setStrength(Collator.SECONDARY); Arrays.sort(parole,c); for (int i=0; i<parole.length; i++) System.out.println(parole[i]); sisìSquadrasisìSquadra