字符串的字数

时间:2009-11-13 06:36:06

标签: count

如何计算文档中的单词,得到的结果与MS OFFICE的结果相同?

4 个答案:

答案 0 :(得分:0)

在不了解您的环境的情况下,我可以告诉您,您需要实现以下内容:

  1. 将整个文档作为字符串。
  2. 在空格上拆分字符串。
  3. 结果序列中的项目数将是文档中的单词数。

答案 1 :(得分:0)

基本单词拆分使用空格和标点符号(。,?!“' - 等 - 实际上是任何非字母数字或字符)字符来分割单词。

确保跳过标点符号/空格序列,而不是计算它们之间的额外“单词”。

您必须决定数字是否为“单词”。而且“123,456.78美元”是一个还是三个字。

您可能还想应用其他规则 - 例如,如果您要在源代码中查找单词,您可能希望将+ - = * /()& ^%$字符视为“空格”。如果你有camelCase或PascalCase样式的标识符,你可能想要找到你找到的“单词”,并检查它们是否在中间或单词中有大写字符。

从根本上说,这是一个简单的问题 - 你只需要决定一个“单词”是什么。你可以像你喜欢的那样简单或复杂。

相同字数统计为Office的最佳方法是使用宏或自动化来使用MS Word加载文本并计算字数。

答案 2 :(得分:0)

理论上,你首先必须定义你所看到的单词(另见Jason Williams的帖子)。然后使用您计划用于此的任何语言打开文档。您将文档从Microsoft的专有格式转换为美观和干净的内容。

然后它只是计算上述单词定义的出现次数。

这里的难点是解析办公文档。幸运的是,Microsoft has relceased their proprietary format specification

它有点啰嗦,但也许你可以找到为你做过艰苦工作的人,或者你可以尝试从头开始。

或者,如果您愿意透露您计划使用的语言和操作系统,那么事情可以轻松得多(例如,如果您在Windows上并安装了Office,则可以使用OLE插件。)

此外,请查看此blog post about that format of Office documents,其中包含一些有用的信息(由谷歌提供)

答案 3 :(得分:-1)

如果您将整个文档作为String,则此代码(在java中)可能适合您:

private int wordCount(String str){
    String[] words = str.trim().split("\\s+");
    for (int i = 0; i < words.length; i++) {
        words[i] = words[i].replaceAll("[^\\w]", "");
    }
    return words.length;
}