首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

急需按GB(每汉字两字符,数字等一字符)的一定长度来截取字符串

2011-12-20 
需要按GB(每汉字两字符,数字等一字符)的一定长度来截取字符串需要按GB(每汉字两字符,数字等一字符)的一定

需要按GB(每汉字两字符,数字等一字符)的一定长度来截取字符串
需要按GB(每汉字两字符,数字等一字符)的一定长度来截取字符串
可是C#是按每汉字一字符计算的啊,头痛。
用到的字符串经常是汉字、数字、英文字母混合的。
比如:a中d12文cd,要取6位字符长,用Substring(0,6)取的长度字符不合要求。
怎么办?

[解决办法]

C# code
Text = Encoding.Default.GetString(    Encoding.Default.GetBytes("a中d12文cd"), 0, 6); //a中d12
[解决办法]
C# code
    // 把一个“unicode字符串”格式化为全角字符占2个位置的“普通字符串”    // width<0 表示左对齐,右边填空格    // width>0 表示右对齐,左边填空格    public static string StrFormat(string s, int width)    {      Encoding code = Encoding.Default;      byte [] bs = code.GetBytes(s);      bool leftAlign = (width < 0 ? true : false);      if (width < 0) width = - width;      if (bs.Length >= width) return s;      if (leftAlign) return s.PadRight(width-bs.Length+s.Length);      return s.PadLeft(width-bs.Length+s.Length);    } 

热点排行