统计字符串的长度(区分中英文)

时间:2006/5/21 16:34:53      阅读:3146          

    我们都知道string自已有一个Length属性,用来统计字符串的长度,如果字符都是中文或都是英文,那没什么问题,但如果出现中英文混合的情况,我们的统计结果就不太准确了,因为在计算机中,中文占两个字节的空间,英文占一个字节的空间,而string的Length不具备区分中英文的功能,所以它计算出来的长度并不准确,如我们在网页上显示字符时,有时候不能超过一定的长度,如果字符串是中英文混合,那载取的字符串长短不一,严重影响美观。

    当然,我们可以用一种非常简单的方法来计算字符串的长度,而且是中文算两个字符,英文算一个字符,下面给出我一直在用的一个方法的源代码,供大家参考:

 1    ' <summary>   
 2    ' 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
 3    ' </summary>
 4    ' <param name="Text">需计算长度的字符串</param>
 5    ' <returns>int</returns>
 6    Public Function Text_Length(ByVal Text As String) As Integer
 7        Dim len As Integer = 0
 8
 9        Dim i As Integer
10        For i = 0 To Text.Length - 1 Step i + 1
11            Dim byte_len() As Byte = Encoding.Default.GetBytes(Text.Substring(i, 1))
12            If (byte_len.Length > 1) Then
13                len += 2  '如果长度大于1,是中文,占两个字节,+2
14            Else
15                len += 1  '如果长度等于1,是英文,占一个字节,+1
16            End If
17        Next
18
19        Return len
20    End Function

    当然别忘了加上’Imports System.Text’,对System.Text的引用哦!!!
评论
  • Re:统计字符串的长度(区分中英文)  (2006/6/12 12:39:16) by 王丹 
    不错,收藏了。
  • Re:统计字符串的长度(区分中英文)  (2006/8/4 22:28:47) by 飘萍 
    很好,回头改成c#的备用。
标 题:
 
姓 名:
 
主 页:

验证码:

评论:
 

Because of the cache,you may see your comments several minutes later.