【发布时间】:2021-11-02 01:40:35
【问题描述】:
我编写的方法应该返回推文中单个单词的列表。单词定义为 [a, z] 或 [A, Z] 范围内的字符。例如,“我讨厌我的工作”这句话应该打印出来: 一世 恨 我的 工作
这是我当前的实现。我还包括了此方法所需的私有成员变量:
public ArrayList<String> getWords() {
ArrayList<String> words = new ArrayList();
String st = "";
for(int i = 0; i < content.length(); ++i) {
char s = content.charAt(i);
if(s == ' ' && st.equals("") == false) {
words.add(st);
st = ("");
}
if(s >= 'a' && s <= 'z' || s >= 'A' && s <= 'Z') {
st += s;
}
}
return words;
}
private String content;
这是输入“我讨厌我的工作”的当前输出:
i
hate
my
预期输出: 一世 恨 我的 工作
这是我当前输入“我爱我的工作#winning”的输出:
i
love
my
job
预期输出:
我
爱
我的
工作
获胜
为什么我的输出不正确?我不明白为什么它不打印最后的话?
【问题讨论】:
-
你是怎么期望
#winning变成winning的?为什么不根据空格分割字符串呢? -
最后一个单词后没有空格 (' '),因此您的
if不会被调用,这意味着该单词不会添加到words。
标签: java string arraylist data-structures