如何得到中英文混合字符串字数,用Length()函数,中文字符返回值是2,不当作1 (150分)

  • 主题发起人 主题发起人 Clark-Kidd
  • 开始时间 开始时间
C

Clark-Kidd

Unregistered / Unconfirmed
GUEST, unregistred user!
问题如题<br>看下面语句<br>var<br>&nbsp; S:String;<br>begin<br>&nbsp; S='12345壹贰叁肆伍';<br>&nbsp; showMessage(IntToStr(Length(S)));<br>end;<br>得到的结果是 15 (5+5*2)<br>我要结果显示10,如何做?有没有现成的控件或者例程?谢谢!
 
先转换成16进制再判断好了,汉字的编码都是大于255的。不知道还有没有更好的方法。
 
var<br>&nbsp;S:Widestring;<br>begin<br>&nbsp;S:='12345壹贰叁肆伍';<br>&nbsp;showMessage(inttostr(length(S)));<br>end;<br>
 
是这样的<br>
 
解决了,谢谢<br>function CountChar(const ssource:string):Integer;<br>var<br>&nbsp; WSource:WideString;<br>&nbsp; Sum:Integer;<br>begin<br>&nbsp; WSource:=SSource;<br>&nbsp; Sum:=Length(WSource);<br>&nbsp; CountChar:=Sum;<br>end;<br>
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
705
import
I
后退
顶部