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

JTextArea为空时单词计数代码返回错误结果的问题求助

问题原因

  • String.split("\\s")的默认行为导致了该问题:当输入字符串为空时,split方法会返回包含1个空字符串元素的数组,因此你拿到的长度永远是1。
  • 除此之外你的原有写法还存在其他统计误差:文本首尾存在空格、多个连续空格分隔单词的场景下,也会统计到无效的空字符串元素,导致计数偏大。

修复后的代码

private void convertButton1MouseClicked(java.awt.event.MouseEvent evt) {                                            
    String text = inputField.getText();
    // 先去除文本首尾的所有空白字符
    String trimmedText = text.trim();
    int wordCount = 0;
    // 仅当去空后文本不为空时才统计单词数
    if (!trimmedText.isEmpty()) {
        // 用1个或多个连续空白符作为分隔规则,避免连续空格产生无效空元素
        wordCount = trimmedText.split("\\s+").length;
    }
    numberOfWords.setText(String.valueOf(wordCount));
}

修改逻辑说明

  • 新增trim()处理:过滤文本首尾的空格、换行、制表符等空白字符,覆盖全空白输入的场景
  • 新增空值判断:去空后文本为空时直接返回计数0,解决空文本统计为1的问题
  • 分隔规则从\\s改为\\s+:匹配连续的空白字符,避免多个空格分隔单词时产生多余空元素,统计更准确

内容的提问来源于stack exchange,提问作者Tito Dave

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 00:36:03