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

Android Studio中如何统计TextView控件内的文本单词数量

Android实现TextView单词统计功能

前置准备

确保你已经在布局文件中正确声明两个TextView,id分别为ViewText和WordCount,并在业务代码中完成控件绑定。

步骤1:编写单词统计工具方法

该方法通过正则匹配分隔文本,过滤空串后返回有效单词数量,可根据业务需求调整正则规则适配不同的统计标准。

Kotlin 版本

private fun countWords(text: String): Int {
    // 按空白符、标点符号分割文本,可修改正则自定义统计规则
    return text.split("\\s+|\\p{Punct}".toRegex())
        .filter { it.isNotBlank() }
        .size
}

Java 版本

private int countWords(String text) {
    String[] words = text.split("\\s+|\\p{Punct}");
    int count = 0;
    for (String word : words) {
        if (!word.trim().isEmpty()) count++;
    }
    return count;
}

步骤2:绑定文本变化监听实现实时统计

如果需要在ViewText文本内容更新时自动刷新单词数,添加TextWatcher监听即可;如果仅需统计固定文本的单词数,直接调用统计方法赋值一次即可。

Kotlin 版本

// 初始化时先统计一次默认文本的单词数
wordCount.text = "单词数:${countWords(viewText.text.toString())}"

// 添加实时监听
viewText.addTextChangedListener(object : TextWatcher {
    override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = Unit
    override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
        s?.let {
            wordCount.text = "单词数:${countWords(it.toString())}"
        }
    }
    override fun afterTextChanged(s: Editable?) = Unit
})

Java 版本

// 初始化统计默认文本单词数
wordCount.setText("单词数:" + countWords(viewText.getText().toString()));

// 添加实时监听
viewText.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (s != null) {
            wordCount.setText("单词数:" + countWords(s.toString()));
        }
    }
    @Override
    public void afterTextChanged(Editable s) {}
});

注意事项

  • 如果使用ViewBinding/DataBinding绑定控件,直接使用绑定对象引用两个控件即可,无需调用findViewById
  • 若需要调整统计规则,比如将连字符连接的词汇算为单个单词、排除纯数字内容等,直接修改countWords方法中的正则表达式即可
  • 若ViewText展示的是固定不变的文本,可直接省略TextWatcher的添加逻辑,仅在初始化时调用一次统计方法赋值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:36:00