[导入]截取等宽字符串函数

当遇到需要对过长的标题进行截取时,可以使用下面这个函数进行截取。

 1public static string GetSubString(string original, int lenght)

 2{

 3    string newStr = original;

 4

 5    if (lenght < original.Length)

 6    {

 7        int newLen = lenght;

 8

 9        bool isFirst = true;

10

11        for (int i = 0; i < lenght; i++)

12        {

13            if ((int)original[i] < 128)

14            {

15                newLen++;

16

17                if (newLen <= original.Length)

18                {

19                    if ((int)original[newLen - 1] > 127 && isFirst)

20                    {

21                        newLen--;

22

23                        isFirst = false;

24                    }

25                    else

26                    {

27                        isFirst = true;

28                    }

29                }

30                else

31             {

32                    break;

33                }

34            }

35        }

36

37        newStr = original.Substring(0, newLen);

38    }

39

40    return newStr;

41}

这个函数的作用是:当已截取的字符串中包括英文时,则在原字符串上多截取一部分字符。多截取的数量取决于已截取的字符串中英文字符的数量。

不过这个函数只适用于使用等宽英文字体的网页,如使用"宋体"等字体的网页。不适用于使用非等宽字体的网页,如使用"Tahoma"等字体的网页。


文章来源:http://fredlau21.blog.163.com/blog/static/485512622007102954744214
posted @ 2007-11-29 17:48  痞子刘  阅读(297)  评论(0)    收藏  举报