none
VB.NET如何统计文本中的单词数 RRS feed

  • 问题



  • 我想知道在.NET下怎么实现统计某个文本框中的单词

    比如一个文本框中有一些文本如下

    magic os
    hello“这个中间插入个Tab"world

    怎么统计得到4个词? 我本来想使用空格分割加上回车分割的办法 但是如果存在两个连续的空格那么就统计不准确了


    我记得以前那个UINX有一段C语言的代码如下 可以统计输入的行数,字符数以及单词数

    ---------------

    #include <stdio.h>
    #include <stdlib.h>
    #define IN 1
    #define OUT 0

    int main(int argc, char *argv[])
    {
      int c,nl,nc,nw,state;
      state=OUT;
      nl=nc=nw=0;
     
      while ((c=getchar())!=EOF) {
           
            ++nc;
           
            if (c=='\n')
               ++nl;
            if (c==' ' || c=='\t' || c=='\n')
                state=OUT;
            else if (state==OUT) {
                    
                     state=IN;
                     ++nw;
                    
                     }
           
            }
           
            printf("%d lines and %d Chars and %d Words\n",nl,nc,nw);
     
      system("PAUSE"); 
      return 0;
    }

    ---------------

    还希望知道的朋友说一下方法 谢谢了~!

    2009年12月4日 9:14

答案

  • Dim input As String = "magic os hello      world"
    Dim count As Integer = Regex.Matches(input, "[a-zA-Z]{2,15}").Count

    知识改变命运,奋斗成就人生!
    • 已标记为答案 magic_os 2009年12月5日 7:12
    2009年12月4日 10:04
    版主
  • [a-zA-Z]代表小写字母或大写字母,然后 [a-zA-Z]{2,15}至少两个小写或大写字母,至多15个小写或大写字母!
    周雪峰
    • 已标记为答案 magic_os 2009年12月5日 7:12
    2009年12月4日 14:58
    版主

全部回复