• Non ci sono risultati.

Alcuni esercizi sull’esecuzione di codice Java con stringhe

N/A
N/A
Protected

Academic year: 2021

Condividi "Alcuni esercizi sull’esecuzione di codice Java con stringhe"

Copied!
3
0
0

Testo completo

(1)

Alcuni esercizi sull’esecuzione di codice Java con stringhe 1. (Esame scritto del 17/7/2002, Esercizio 2 .)

Si consideri il seguente frammento di codice in linguaggio Java:

String s=stringa, c="";

for (int i=0; i<s.length(); i++) {

if (s.charAt(i)==’a’ || s.charAt(i)==’b’) c=c+s.charAt(i);

}

Determinare il valore finale della variabile c nei seguenti casi:

1) stringa="libellula";

2) stringa="albatro";

3) stringa="anaconda";

4) stringa="balena".

Soluzione 1) c="ba";

2) c="aba";

3) c="aaa";

4) c="baa".

2. (Esame scritto del 19/9/2003, Esercizio 1 .)

Si consideri il seguente frammento di codice in Java:

String[] a = b;

int i = 0; int c = 0;

boolean p = true; int j;

while (i<a.length && p) {

for (j=0; j<a[i].length()-1; j++) {

if (a[i].charAt(j) == a[i].charAt(j+1)) c++;

}

if (c==0) p=false;

i++;

}

Determinare il valore finale delle variabili i, c e p nei seguenti casi:

1) b = {"aab","bf","cdd"};

2) b = {"ab","cc","d","cab"}.

Soluzione

1) i=3, c=2, p=true;

2) i=1, c=0, p=false.

1

(2)

Alcuni esercizi sulla scrittura di metodi statici iterativi su stringhe

3. Scrivere un metodo che, dati un carattere c ed una stringa s, restituisce true se c occorre in s, false altrimenti.

public static boolean occorreCar (char c, String s) { int i = 0;

boolean trovato = false;

while (i<s.length() && !trovato) { if (s.charAt(i) == c)

trovato = true;

i++;

}

return trovato;

}

4. Scrivere un metodo che, dati un carattere c ed una stringa s, restituisce il numero delle occorrenze di c in s.

public static int occorrenzeCar (char c, String s) { int cont = 0;

for (int i=0; i<s.length(); i++) { if (s.charAt(i) == c)

cont++;

}

return cont;

}

5. Scrivere un metodo che, dati un carattere c ed una stringa s, restituisce la posizione della prima occorrenza di c in s, e -1 se c non occorre in s.

public static int posizioneCar (char c, String s) { int i = 0;

boolean trovato = false;

while (i<s.length() && !trovato) { if (s.charAt(i) == c)

trovato = true;

else i++;

}

if (trovato) return i;

else return -1;

}

2

(3)

6. (Esame scritto del 10/12/2001, una versione dell’Esercizio 3 .)

Scrivere un metodo in linguaggio Java che data una stringa s e due caratteri c1 e c2 determini se il numero di occorrenze di c1 in s sia uguale o meno al numero di occorrenze di c2.

public static boolean occorrenze (String s, char c1, char c2) { int count1 = 0, count2 = 0;

for (int i=0; i<s.length(); i++) { if (s.charAt(i) == c1)

count1++;

if (s.charAt(i) == c2) count2++;

}

return (count1 == count2);

}

7. (Esame scritto del 4/11/2002, una versione dell’Esercizio 5 .)

Scrivere un metodo che, dato un array bidimensionale quadrato a di caratteri, restitui- sce la stringa ottenuta concatenando i caratteri presenti nel triangolo in alto a sinistra inclusa la diagonale. Ad esempio, data la matrice a

{{’a’,’b’,’c’}, {’d’,’e’,’f’}, {’g’,’h’,’i’}}

il metodo restituisce la stringa "abcdeg".

public static String triangolo (char[][] a) { int m = a.length;

String s = "";

for (int i=0; i<m; i++) for (int j=0; j<m-i; j++)

s = s+a[i][j];

return s;

}

3

Riferimenti

Documenti correlati

Siano dati in input le informazioni su n libri di una biblioteca creando quattro vettori con il codice del libro, i loro prezzi, il codice della casa editrice e l’anno di

¨  Nell’input di stringhe, la scanf scarta automaticamente i white space iniziali e continua a leggere fino a quando incontra un white space (quindi non si può usare la scanf

Non vi è un altro carattere (inizio stringa) Vi è un altro carattere, ma non è una lettera. Fine di parola: lettera, dopo la quale non vi è

La soluzione pi´ u efficiente `e quella con il while, in quanto nel caso in cui l’array non soddisfi la caratteristica detta al punto 1., l’iterazione termina non appena si trova

Ci serviamo di un indice j che scorre tutti i caratteri della stringa nome assegnata in input finché non raggiunge il carattere nullo; ognuno di questi caratteri deve essere

cost = 20; // estero ancora più

cost = 10; // Hawaii più costoso else // NON FUNZIONA. cost = 20; // estero ancora

cost = 20; // estero ancora più