• Non ci sono risultati.

Esercizi sulla classe String (Fondamenti di Informatica 1 – Walter Didimo) Soluzioni

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercizi sulla classe String (Fondamenti di Informatica 1 – Walter Didimo) Soluzioni"

Copied!
2
0
0

Testo completo

(1)

Esercizi sulla classe String

(Fondamenti di Informatica 1 – Walter Didimo) Soluzioni

Esercizio 1 Scrivere un programma Java che effettua le seguenti operazioni:

• Fa inserire all’utente una stringa s;

• Visualizza all’utente il numero totale di caratteri di s;

• Chiede all’utente di inserire due posizioni intere a e b, tali che a < b e comprese tra 0 e la lunghezza di s meno 1 (il programma assume che l’utente inserisca correttamente i dati, cioè non deve eseguire controlli di correttezza);

• Visualizza all’utente la sottostringa di s compresa tra a (incluso) e b (escluso).

Soluzione

Vista la sua semplicità, il programma viene realizzato attraverso la definizione di una semplice classe (di nome Esercizio1), in cui tutte le azioni richieste sono effettuate nel metodo speciale main.

class Esercizio1{

public static void main (String[] args){

InputWindow in = new InputWindow ();

OutputWindow out = new OutputWindow ("Finestra di output");

out.setFont ("Arial", 16);

String s = in.readString ("Inserire una stringa");

out.writeln ("Numero di caratteri della stringa: " + s.length());

int inizio = in.readInt ("Estrazione sottostringa:

inserire posizione di inizio (inclusa)");

int fine = in.readInt ("Estrazione sottostringa: inserire posizione

di fine (esclusa)");

out.writeln ("Sottostringa estratta: " + s.substring(inizio, fine));

} }

Esercizio 2 Scrivere un programma Java che chiede all’utente di inserire due stringhe e che visualizza all’utente true se le stringhe sono uguali e false se sono diverse.

Soluzione

class Esercizio2{

public static void main (String[] args){

InputWindow in = new InputWindow ();

String s1 = in.readString ("Inserire prima stringa");

String s2 = in.readString ("Inserire seconda stringa");

OutputWindow out = new OutputWindow("Stringhe uguali?");

out.writeln (s1.equals(s2));

} }

(2)

Esercizio 3 Nel seguente frammento di codice vengono creati e confrontati degli oggetti String, utilizzando vari meccanismi di confronto. Dire quanto valgono i predicati nelle linee indicate con un commento // ??.

String s1 = new String (“Esercizio di valutazione”);

String s2 = new String (“esercizio di valutazione”);

String s3 = “Esercizio di valutazione”;

String s4 = “esercizio di valutazione”;

String s5 = s3;

String s6 = “Esercizio di valutazione”;

String s7 = new String (“Esercizio di valutazione”);

s3 == s1; // ??

s3 == s5; // ??

s2.equals (s4); // ??

s7 == s1; // ??

s6.equals (s3); // ??

s6 == s3; // ??

Soluzione

s3 == s1; // false (si tratta di oggetti diversi)

s3 == s5; // true (s3 ed s5 referenziano lo stesso oggetto)

s2.equals (s4); // true (gli oggetti sono diversi ma hanno lo stesso stato) s7 == s1; // false (gli oggetti sono diversi anche se con uguale stato) s6.equals (s3); // true (s6 ed s3 hanno lo stesso stato)

s6 == s3; // true (s6 ed s3 referenziano addirittura lo stesso oggetto)

Esercizio 4 Scrivere un programma che fa inserire all’utente una frase f ed una stringa s, e che visualizza all’utente true se s è una sottostringa di f e false altrimenti.

Il programma deve inoltre visualizzare all’utente una frase equivalente ad f ma in cui tutte le lettere sono in maiuscolo.

Soluzione

class Esercizio4{

public static void main (String[] args){

InputWindow in = new InputWindow ();

String f = in.readString ("Inserire una frase");

String s = in.readString ("Inserire una stringa s");

System.out.println ("Verifica: \"" + s + "\" e' sottostringa di \""

+ f + "\"");

int posizione = f.indexOf(s);

boolean confronto = posizione >= 0;

System.out.println (confronto);

String fMaiuscola = f.toUpperCase();

System.out.println (fMaiuscola);

} }

Osservazione: se voglio scrivere il carattere di apice doppio in un letterale stringa, allora debbo usare la sequenza \”.

Riferimenti

Documenti correlati

Suggerimento: usare la classe Integer ed il metodo parseInt per convertire i caratteri della stringa in

La classe ContoCorrente ha inoltre una variabile statica, di nome massimoScoperto, che indica (in valore assoluto) il massimo valore di scoperto consentito per ogni conto corrente

La classe ContoCorrente ha inoltre una variabile statica, di nome massimoScoperto, che indica (in valore assoluto) il massimo valore di scoperto consentito per ogni conto corrente

• Il metodo di classe static void stampaIntersezione (Intervallo interv1, Intervallo interv2), che visualizza sullo standard output tutti numeri compresi nell’intersezione tra

Scrivere inoltre una classe ProvaCoppiaDiStringhe, avente il solo metodo main, che fa inserire all’utente due stringhe e che testa tutti i metodi della classe CoppiaDiStringhe,

Scrivere il codice della classe Esame, e scrivere inoltre il codice di una classe ProvaEsame che consente, attraverso il suo metodo main, di inserire un appello di esame e tutti

• Un costruttore che consente di definire una nuova TabellaVoti; il costruttore deve prendere in ingresso un array di stringhe che definisce la sequenza dei nomi degli studenti,

• Un metodo di istanza, di nome analizza, che non ha parametri in ingresso e che restituisce sotto forma di oggetto String una descrizione comprendente: (1) il numero di numeri pari