在一个文本筐内输入一个英语句子,我怎么统计单词个数?(26分)

  • 主题发起人 主题发起人 watt
  • 开始时间 开始时间
W

watt

Unregistered / Unconfirmed
GUEST, unregistred user!
如题所述,我的思路是:先统计句子中空格和标点符号的个数,然后用。。。就不知道了,。。。高手给个大概的方法吧
 
用Delphi自带的类: TParser,在Classes单元中定义:
代码如下:
_______________________________________________
function GetCount(S: string): Integer;
var
oString: TStream;
begin
Result := 0;
oString := TStringStream.Create(S);
with TParser.Create(oString) do
try
while(Token <> toEOF) do
begin
if Token = toSymbol then
Inc(Result);
NextToken;
end;
finally
Free;
oString.Free;
end;
end;
 
这个方法倒是不错,可是如果要统计不同的单词有多少个(就是所有相同的单词都算是一个单词),又该怎么做呢?
 
哈哈,这个还能怎么做,既然上面能够分辨出单词来了,单词同不同还难吗?找到一个新的单词出来就和已有的比较,如果相同就不算,不同就增加,最后一篇文章完了,肯定统计出来了嘛。最后给你一个建议就是最好在统计的时候按单词的先后顺序排序,这样在对比的时候可以采用hash函数来操作,效率会大大的提高。
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部