Module: AP Informatica Sezione II 2015


Problem

3/4

stringhe

Problem

Un programma di modifica del testo utilizza una classe Sentence che manipola una singola frase. Una frase contiene lettere, spazi vuoti e punteggiatura. Il primo carattere di una frase è una lettera e l'ultimo carattere è un segno di punteggiatura. Due parole qualsiasi nella frase sono separate da un singolo spazio vuoto. Un'implementazione parziale della classe Sentence è la seguente.

a) Scrivi il metodo Frase getBlankPositions, che restituisce un ArrayList di numeri interi che rappresentano le posizioni in una frase contenente spazi. Se non ci sono spazi vuoti nella frase, getBlankPositions dovrebbe restituire un elenco vuoto. Di seguito sono mostrati alcuni risultati della chiamata a getBlankPositions.


Metodo completo getBlankPositions di seguito.
/** @return an ArrayList di posizioni intere contenenti a
* vuoto in questa frase. Se non ci sono spazi vuoti nel
* frase, restituisce un elenco vuoto.
*/
Elenco pubblico<Numero intero> getBlankPositions()
 
b) Scrivi il metodo Frase countWords, che restituisce il numero di parole in una frase. Le parole sono sequenze di lettere o segni di punteggiatura, separate da un singolo spazio. Puoi presumere che ogni frase contenga almeno una parola.
Ad esempio:

Metodo completo countWords di seguito.

/** @return il numero di parole in questa frase
* Prerequisito: la frase contiene almeno una parola.
*/
public int countWords()
 
c) Scrivi il metodo Sentence getWords, che restituisce un array di parole nella frase. Una parola è definita come una stringa di lettere e punteggiatura e non contiene spazi vuoti. Puoi presumere che una frase contenga almeno una parola.
Di seguito sono riportati alcuni esempi di chiamata a getWords.

Nella scrittura del metodo getWords, devi utilizzare i metodi getBlankPositions e countWords, che sono stati scritti nelle parti (a) e (b). Puoi presumere
che questi metodi funzionino correttamente, indipendentemente da quanto scritto nelle parti (a) e (b).
Metodo completo getWords di seguito.

/** @return l'array di parole in questa frase
* Precondizione:
* - Due parole qualsiasi nella frase sono separate da uno spazio vuoto.
* - La frase contiene almeno una parola.
* Postcondizione: String[] restituita contenente le parole in
* questa frase.
*/
public String[] getWords()