Qui trovi un insieme di esercizi che ti permetteranno di metterti alla prova con le stringhe in Java.
Esercizi sulle stringhe in java
Per aiutarti a svolgere questi esercizi usa la documentazione di Java Oracle:
Esercizio 1: Le caratteristiche di una frase
Realizzare un programma in grado di far inserire all'utente una frase. Il programma deve essere in grado di restituire:
il numero di caratteri presenti nella frase inseriti dall'utente;
il numero di parole contenute nella frase inserita dall'utente (considera per semplicità che tutte le parole siano separate da uno spazio);
il numero di caratteri in "minuscolo" inseriti dall'utente (usa il metodo isLowerCase() della classe Character);
il numero di caratteri in "maiuscolo" inseriti dall'utente (usa il metodo isUpperCase() della classe Character);
Esercizio 2: Gara di digitazione (test di battitura)
Realizzare un programma in grado di testare la velocità di digitazione dell'utente. Il programma deve mostrare a schermo una frase e si deve chiedere all'utente di digitare la stessa identica frase nel minor tempo possibile.
Quando l'utente ha terminato di inserire la frase il programma deve mostrare a schermo il tempo impiegato ed il numero di errori che sono stati commessi.
Suggerimento: Per poter misurare il tempo si usi il secondo metodo descritto in questo link.
** Fai in modo che l'utente possa testare la propria velocità con diversi test e che la stringa proposta all'utente non sia sempre la stessa.
Esercizio 3: Cinque nomi da analizzare
Realizzare un programma in grado di far inserire all'utente 5 nomi di persona. Quest'applicazione deve indicare:
Quanti nomi iniziano con una vocale;
Quale è la lunghezza media dei nomi inseriti;
Visualizzare a schermo il nome più lungo inserito (se ci sono più nomi con la stessa lunghezza, mostrarli tutti).
Esercizio 4: Individua i verbi all'infinito
Realizzare un programma in grado di far inserire all'utente n parole all'interno di un vettore di tipo String. Quest'applicazione deve indicare:
Quante di tali parole siano dei verbi all'infinito della prima coniugazione (si tratta di parole che terminano in are);
Quante di tali parole siano dei verbi all'infinito della seconda coniugazione (si tratta di parole che terminano in ere);
Quante di tali parole siano dei verbi all'infinito della terza coniugazione (si tratta di parole che terminano in ire);
Esercizio 5: Individua le parole o frasi palindrome
Realizzare un programma in grado di far inserire all'utente una frase. Quest'applicazione:
Si salva all'interno di una nuova stringa la stessa stringa al contrario, ossia con i caratteri invertiti di ordine; (mouse diventa esuom)
Indica in output se la stringa inserita dall'utente è palindroma.
Esercizio 6: Parola con formato "alternato"
Realizzare un programma in grado di far inserire all'utente una parola. Quest'applicazione:
Si salva all'interno di una nuova stringa la stessa parola con i caratteri alternati tra maiuscolo e minuscolo;
ossia se l'utente inserisce la parola "pallavolo", il programma deve salvare nella nuova stringa la parola "PaLlAvOlO";
Mostrare a schermo la parola ottenuta.
Esercizio 7: il Cifrario di Cesare
Scrivi un programma in Java che implementa il Cifrario di Cesare, un metodo di cifratura molto semplice usato fin dall'antichità.
Il programma deve:
Chiedere all’utente di inserire una chiave numerica compresa tra 1 e 25.
Chiedere una parola da cifrare e stamparne la versione cifrata.
Chiedere una parola già cifrata e decifrarla usando la stessa chiave.
Regole del cifrario di Cesare:
Ogni lettera dell’alfabeto viene sostituita con quella che si trova un certo numero di posizioni più avanti.
Se si supera la “z”, si torna all’inizio dell’alfabeto.
La decifratura consiste nello spostare le lettere indietro dello stesso numero di posizioni.
Il programma deve ignorare i caratteri non alfabetici lasciandoli invariati.
Esempio:
Se la chiave è 3:
La parola "cane" diventa "fdqh"
La parola cifrata "fdqh" viene decifrata in "cane"
Consigli:
Metodi della classe String che ti possono essere utili:
charAt() ti serve per leggere ogni singolo carattere della parola.
length() per sapere quanti caratteri ci sono.
Metodi statici della classe Character che ti possono essere utili:
isLetter(c) ti serve per cifrare solo le lettere e ignorare gli altri simboli.
isUpperCase(c) / isLowerCase(c) ti aiutano a sapere se mantenere la maiuscola o la minuscola.
char e int sono legati perché ad ogni carattere è associato un numero che possiamo scoprire leggendo la tabella ASCII. Esempi di conversione:
char c = 'A'; int ascii = (int)c; --> ascii contiene 65
int numero = 65; char c = (char) numero; --> c contiene 'A'
Esercizio 8: Creazione della password
Scrivi un programma in Java che permetta all'utente di scegliere una password che rispetti diversi criteri. Il programma deve consentire all'utente di:
Scrivere due volte la password scelta (la seconda volta serve per confermare la password scelta);
Tale password deve soddisfare i seguenti criteri:
Le due password inserite dall'utente devono essere uguali;
Essere lunga almeno 8 caratteri;
Avere almeno un carattere minuscolo;
Avere almeno un carattere maiuscolo;
Avere almeno un numero;
Se la password supera tutti i controlli Stampare a schermo la frase "Complimenti hai inserito una password valida" ed uscire dal programma. Altrimenti richiedere all'utente di scegliere un'altra password perché quella inserita non rispetta uno dei criteri precedenti.
Esercizio 9: Sbloccare il telefono (estensione dell'esercizio 8)
Continuando l'esercizio 8 simulare lo sblocco del telefono. L'utente ha tre tentativi per sbloccare lo smartphone e per farlo dovrà inserire la password che ha scelto in precedenza.
Il programma deve estendere l'esercizio 8 permettendo all'utente di:
Inserire la password scelta;
Se la password coincide con quella scelta in precedenza allora indicare in output la frase "Telefono sbloccato";
Altrimenti richiedere la password.
Se si superano i tre tentativi di inserimento della password mostrare a schermo "Telefono BLOCCATO per sempre" e chiudere il programma.
Esercizio 10: Scelta di un pin numerico di 4 cifre
Permettere all'utente di inserire un pin di 4 cifre e indicare quando tale pin è valido.
Il programma deve consentire all'utente di:
inserire una stringa che rappresenti il pin.
Il pin deve essere accettato solo se composto da 4 caratteri e tutti e 4 i caratteri sono delle cifre numeriche (dallo 0 al 9).
Il programma termina quando l'utente inserisce un pin valido (mostrando a schermo la frase "PIN ACCETTATO"). In alternativa, in maniera iterativa si deve permettere all'utente di reinserire il pin.
Extra: Non accettare come pin validi "0000" e "1234" perché troppo semplici.
Esercizio 11: Mastermind
Realizzare un programma in grado di far giocare l'utente al gioco Mastermind versione originale con i numeri da 0 a 9. Trovi le regole su wikipedia: https://it.wikipedia.org/wiki/Mastermind