一、题目简介
颠倒文章单词顺序。
二、源码的github链接
https://github.com/caojinyu12/project2
三、所设计的模块测试用例、测试结果截图
测试用例:
importjava.util.Stack;
publicclass Transpose {
/*
* 该方法会打印词库中单词
* @param list 单词库
*/
publicvoidtransposeWord(Stack<String> list) {
while (!list.empty()) {
System.out.print(list.pop() + " ");
}
}
/*
* 将单词从字符串中提取出来放到一个栈中,并返回。
*/
public Stack<String>getWords(String article) {
Stack<String> list = new Stack<String>();
StringBuffersb = newStringBuffer();
// 是否开始组建单词
booleanisLetter = false;
booleanaddWord = false;
// 对文章字符串的字符进行遍历,遇到字符就新建一个StringBuffer,把第一个字母放到StringBuffer中,
// 继续向下扫描,如果是字母就把字符追放到到StringBuffer里,直到遇到非字符,就把StringBuffer作为一个单词放到List中
for (inti = 0; i<article.length(); i++) {
chartmp = article.charAt(i);
// 如果是字母的话,就将状态变为<开始组建单词>
if (Character.isLetter(tmp)) {
isLetter = true;
addWord = false;
sb.append(tmp);
if (i == article.length() - 1) {
addWord = true;
}
} else {
addWord = true;
}
if (addWord) {
// 如果是<开始组建单词>就将单词加到list中
if (isLetter) {
list.push(sb.toString());
sb.delete(0, sb.length());
isLetter = false;
}
}
}
return list;
}
}
截图:
四、心得体会
利用测试代码对整数组中子数组之和的最大值进行测试,感到测试代码的微妙之处,提交到博客园处进行交流,不足之处还请指出。