Module: AP コンピュータ サイエンス セクション II 2015


Problem

3/4

文字列

Problem

テキスト編集プログラムは、単一の文を操作する Sentence クラスを使用します。 文には、文字、空白、および句読点が含まれます。文の最初の文字は文字で、最後の文字は句読点です。文中の任意の 2 つの単語は、1 つの空白で区切られます。  Sentence クラスの部分的な実装は次のとおりです。

a) Sentencemethod getBlankPositions を記述します。これは、空白を含むセンテンス内の位置を表す整数の ArrayList  を返します。文に空白がない場合、getBlankPositions は空のリストを返す必要があります。getBlankPositions を呼び出した結果の一部を以下に示します。


以下のメソッド getBlankPositions を完成させてください。
/** @return を含む整数位置の ArrayList 
* この文は空白。  に空白がない場合
* 文、空のリストを返します。
*/
public リスト<整数> getBlankPositions strong>()

 
b) 文の単語数を返す Sentence メソッド countWords を記述します。単語は、1 つの空白で区切られた一連の文字または句読点です。すべての文に少なくとも 1 つの単語が含まれていると考えてよいでしょう。
例:

以下の countWords メソッドを完成させてください。

/** @この文の単語数を返す
* 前提条件: 文に少なくとも 1 つの単語が含まれていること。
*/
public int countWords()

 
c) 文内の単語の配列を返す Sentence メソッド getWords を記述します。単語は、文字と句読点の文字列として定義され、空白は含まれません。文には少なくとも 1 つの単語が含まれていると想定できます。
getWords の呼び出し例を以下に示します。

メソッド getWords を記述する際には、(a) と (b) で記述した getBlankPositions  メソッドと countWords メソッドを使用する必要があります。と思うかもしれません
パート (a) と (b) の内容に関係なく、これらのメソッドが正しく機能することを確認してください。
以下のメソッド getWords を完成させてください。

/** @この文の単語の配列を返す
* 前提条件:
* - 文中の 2 つの単語は 1 つの空白で区切られます。
* - 文には少なくとも 1 つの単語が含まれています。
* 事後条件: 単語を含む文字列 [] が返されました
* この文章
*/
public 文字列[] getWords()