Module: AP 计算机科学第二部分 2015


Problem

3/4

字符串

Problem

文本编辑程序使用 Sentence 类来处理单个句子。 句子包含字母、空格和标点符号。  句子的第一个字符是字母,最后一个字符是标点符号。句子中的任何两个单词用一个空格分隔。  Sentence类的部分实现如下。

a) 编写 Sentence 方法 getBlankPositions,它返回一个整数 ArrayList,表示包含空格的句子中的位置。如果 句子中没有空格,getBlankPositions 应该返回一个 空列表。 调用getBlankPositions 的一些结果如下所示。


完成下面的方法 getBlankPositions。
/** @return 一个包含的整数位置的ArrayList
* 这句话留空。如果中没有空格
*句,返回一个空列表。
*/
公共列表<整数> getBlankPositions()
 
b) 编写Sentence方法countWords,返回一个句子中的单词数 。单词是字母或标点符号的序列,由单个空格分隔。你可以假设每个句子至少包含一个单词。
例如:

完成下面的方法 countWords。

/** @return 这句话的字数
* 前提条件:句子至少包含一个词。
*/
public int countWords()
 
c) 编写Sentence方法getWords,返回句子中的单词数组。单词定义为一串字母和标点符号,并且不包含任何空格。你可以假设一个句子至少包含一个词。
调用 getWords 的一些示例如下所示。

在写方法getWords时,必须使用方法getBlankPositions 和countWords,这两个方法在(a)和(b)部分已经写过了。你可以假设
无论您在 (a) 和 (b) 部分中写了什么,这些方法都能正常工作。
完成下面的方法 getWords。

/** @return 这句话的单词数组
* 前提条件:
* - 句子中的任意两个单词由一个空格分隔。
* - 句子至少包含一个词。
* 后置条件:返回的字符串[]包含中的单词
*这句话。
*/
public 字符串[] getWords()