none
请教:关于字符串格式化问题(PadLeft,PadRight) RRS feed

  • 问题

  •             string str1 = "中华人民共和国";
                string str2 = "中国";

                str1 = str1.PadRight(20, ' ');
                str2 = str2.PadRight(20, ' ');

                MessageBox.Show(str1.Length.ToString());           //结果为20
                MessageBox.Show(str2.Length.ToString());           //结果为20

                MessageBox.Show(Encoding.Default.GetByteCount(str1).ToString());           //结果为27,我想让这个长度为20
                MessageBox.Show(Encoding.Default.GetByteCount(str2).ToString());           //结果为22,我想让这个长度为20

     PadLeft,PadRight能不能将字符串格式化的长度为字节长度,该如何处理?能否实现?

     


    meerio
    2010年11月11日 2:47

答案

  •       int iLen = 20;
    
          string str1 = "中华人民共和国";
          string str2 = "中国";
    
          str1 = str1 + string.Empty.PadRight((iLen - Encoding.Default.GetByteCount(str1)));
          str2 = str2 + string.Empty.PadRight((iLen - Encoding.Default.GetByteCount(str2)));
    
          MessageBox.Show(Encoding.Default.GetByteCount(str1).ToString());      //结果为27,我想让这个长度为20
          MessageBox.Show(Encoding.Default.GetByteCount(str2).ToString());      //结果为22,我想让这个长度为20
    

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 meerio 2010年11月11日 3:45
    2010年11月11日 3:32

全部回复

  • 沉了,将帖子顶起来
    meerio
    2010年11月11日 3:12
  •       int iLen = 20;
    
          string str1 = "中华人民共和国";
          string str2 = "中国";
    
          str1 = str1 + string.Empty.PadRight((iLen - Encoding.Default.GetByteCount(str1)));
          str2 = str2 + string.Empty.PadRight((iLen - Encoding.Default.GetByteCount(str2)));
    
          MessageBox.Show(Encoding.Default.GetByteCount(str1).ToString());      //结果为27,我想让这个长度为20
          MessageBox.Show(Encoding.Default.GetByteCount(str2).ToString());      //结果为22,我想让这个长度为20
    

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 meerio 2010年11月11日 3:45
    2010年11月11日 3:32