前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获得定长字符串

获得定长字符串

作者头像
用户1075292
发布2018-01-23 10:20:54
7450
发布2018-01-23 10:20:54
举报
文章被收录于专栏:听雨堂听雨堂

        C#中的字符串是Unicode编码,length是Unicode的Char的个数。所以,假如一个字符串中中英文混杂,又想获得一个固定宽度的字符串,就比较麻烦。单纯转换成字节再截取难免会碰到半个汉字的问题。

        下面实现了这样的功能,返回固定字节长度的字符串,如果发生截断,后面补充2个或者3个“.”,根据截断点的位置决定。

代码语言:javascript
复制
/// <summary>
        /// 返回定长的字符串,如果发生截取,在后面补充两个或三个"."
        /// Author:jetz
        /// </summary>
        /// <param name="ByteLen"></param>
        /// <param name="str"></param>
        /// <returns></returns>
        static public string GetFixupString(int ByteLen,string str)
        {
            if(System.Text.Encoding.Default.GetByteCount(str)<=ByteLen)return str;

            for(int i=str.Length-1;i>0;i--)
            {
                int j=System.Text.Encoding.Default.GetByteCount(str.Substring(0,i));    //字节宽度
                if(j<=ByteLen-2)        //保证能显示".."
                {
                    return str.Substring(0,i)+new string('.',ByteLen-j);
                }
            }
            return "";
        }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2005-11-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档