You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现从字符序列提取独立单词时输出异常问题求解

问题原因
  • 遍历结束未处理最后一段暂存字符:你仅在匹配到空格时才将暂存的单词加入结果列表,若最后一个单词末尾没有空格,就会被直接遗漏,这是你两个测试用例都少最后一个单词的核心原因。
  • 分隔符判断逻辑不全:你仅将空格作为单词分隔触发条件,但按照需求所有非英文字母的字符都属于单词分隔符,遇到#、标点等非字母字符时,也需要触发暂存单词入队和清空逻辑,否则会出现特殊字符两侧字母被错误拼接的问题。
修复后实现
public ArrayList<String> getWords() {
    ArrayList<String> words = new ArrayList<>();
    StringBuilder st = new StringBuilder();
    for (int i = 0; i < content.length(); i++) {
        char s = content.charAt(i);
        if ((s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z')) {
            st.append(s);
        } else {
            if (st.length() > 0) {
                words.add(st.toString());
                st.setLength(0);
            }
        }
    }
    // 处理遍历结束后剩余的最后一个单词
    if (st.length() > 0) {
        words.add(st.toString());
    }
    return words;
}

private String content;

内容的提问来源于stack exchange,提问作者River Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:06:01