求助!!!(100分)

  • 主题发起人 主题发起人 babyrun
  • 开始时间 开始时间
B

babyrun

Unregistered / Unconfirmed
GUEST, unregistred user!
如何判断查找的字符串是汉字,并且统计其长度?
 
字符串S中包括的汉字个数 = Length(S) - Length(WideString(S))
 
var
str1:String;
str2:WideString;
.....

str1:=Edit1.Text;
str2:=str1;
//转成wideString,这样在length函数时,将返回byte
ShowMessage('Bytes:='+IntToStr(Length(str2))+' --Length:='
+IntToStr(Length(str1)) );
//比较上面两个信息,你就可以知道了,如果有汉字,他们的值会不一样,到底
有几个汉字,我想你自己会算了吧?
 
写个函数,扩展性更强。代码如下:
Function GetCount(Str:String):Integer;
Var
Count,I,Len:Integer;
begin
Len:=Length(Str);
Count:=0;
I:=1;
While I<=Lendo
begin
If Str[Index]>#127 then
Index:=Index+2
Inc(WordCount);
end;
Result:=Count;
end;
 
字符串S中包括的汉字个数 = Length(S) - Length(WideString(S))
 
通过判断字符串中每一个字符是否大于#127可辨别汉字。
以上通过length来判断汉字个数可能会不准确,因为汉字的length为2,所以Leng(汉字字符)/2才是汉字个数。可以在每判断一个字符为汉字后,用一个变量来计数,从而获取汉字个数。
 
多人接受答案了。
 

Similar threads

后退
顶部