Realizzare una classe che abbia i seguenti metodi:
void generaFile(String nomeFile): crea un file con stringhe e numeri casuali (ogni elemento su una linea).
List<String> leggiFile(String nomeFile): che legge ogni linea del file specificato e lo salva in un oggetto di tipo List<String> che successivamente restituisce.
void stampaLineeNumeriche(String nomeFile): che legge il file specificato usando il metodo leggiFile e stampa le linee che contengono solo numeri.
void stampaLineeConNumero(String nomeFile): che legge il file specificato usando il metodo leggiFile e stampa le linee che contengono almeno un numero.
void stampaLineeConLetterePari(String nomeFile, char lettera): che legge il file specificato usando il metodo leggiFile e stampa le linee che corrispondono esattamente ad una sequenza (non vuota) di lunghezza pari del carattere specificato dalla variabile lettera.
void stampaLineeConNumeroUguale(String nomeFile, char lettera1, char lettera2): che legge il file specificato usando il metodo leggiFile e stampa le linee che contengono lo stesso numero di occorrenze di lettera1 e lettera2.
Per ogni metodo di stampa implementare le versioni con e senza espressioni regolari (se possibile).
Esempio di file: [Download].
Per la generazione degli elementi casuali si può utilizzare la classe Random (documentazione). Esempio di utilizzo:
Random r = new Random();
int numeroCasuale = r.nextInt();
Esercizio bonus: Scaricare il file networkConfig.txt [Download] e realizzare una funzione void stampaConfigurazioneDiRete(String nomeFile) che legge il file scaricato e stampa:
Le linee del file in cui compare un indirizzo IP
L'insieme degli indirizzi IP presenti nelle linee del file
L'insieme degli indirizzi IP della forma 192.X.Y.Z ordinati rispetto al valore di Y
Un esempio di indirizzo IP è: 192.168.1.1
In generale un indirizzo IP è una stringa composta da quattro numeri separati da punto.
Ognuno dei numeri può variare arbitrariamente tra 0 e 255