zoukankan      html  css  js  c++  java
  • 关于字符串对齐的问题

    今天碰到一个打印时的模版格式的问题:
    要打印出来的字符串对不齐,开始是想法是正确的,但没做出来,呵呵,经验有限。
    后到网上找到一个,试了下,不错,能达到想要的效果。
    字符串中含有字母,数字,汉字等不统一的字符。函数如下:

     1 /// <summary>
     2        /// 把一个“unicode字符串”格式化为全角字符占2个位置的“普通字符串”
     3        ///  width小于0   表示左对齐,右边填空格   
     4        ///  width大于0   表示右对齐,左边填空格  
     5        /// </summary>
     6        /// <param name="s"></param>
     7        /// <param name="width"></param>
     8        /// <returns></returns>

     9        public static string StrFormat(string s, int width)
    10        {
    11            Encoding code = Encoding.GetEncoding("GB18030");
    12
    13            byte[] bs = code.GetBytes(s);
    14
    15            bool leftAlign = (width < 0 ? true : false);
    16
    17            if (width < 0
    18                width = -width;
    19
    20            if (bs.Length >= width) 
    21                return s;
    22
    23            if (leftAlign) 
    24                return s.PadRight(width - bs.Length + s.Length);
    25
    26            return s.PadLeft(width - bs.Length + s.Length);
    27        }
       
    28

     1对齐格式一:如下:
     2一票通UL初始化卡
     3一票通1K初始化卡 
     4一卡通S70非记名成人卡
     5一卡通CPU非记名成人卡
     6一卡通S50非记名成人卡 
     7一卡通S70记名成人卡
     8一卡通S70定值卡
     9一卡通S70福利卡
    10一卡通S70纪念卡 
    11一卡通S70老人卡 
    12一卡通S70大钱包扣款测试专用卡
    13一卡通S70学生卡1
    14一卡通S70学生卡2
    15一卡通S70学生卡3 
    16一卡通S70定期卡1 
    17一卡通S70定期卡2 
    18一卡通S70地铁员工卡
    19一卡通S70计次卡1
    20一卡通S70计次卡2 
    21一卡通S70奥运专用卡1
    22一卡通S70奥运专用卡2
    23
    24对齐格式二,如下:
    25
    26                 一票通UL初始化卡
    27                 一票通1K初始化卡 
    28          一卡通S70非记名成人卡
    29          一卡通CPU非记名成人卡
    30          一卡通S50非记名成人卡 
    31             一卡通S70记名成人卡
    32                  一卡通S70定值卡
    33                  一卡通S70福利卡
    34                  一卡通S70纪念卡 
    35                  一卡通S70老人卡 
    36一卡通S70大钱包扣款测试专用卡
    37                一卡通S70学生卡1
    38                一卡通S70学生卡2
    39                一卡通S70学生卡3 
    40                一卡通S70定期卡1 
    41                一卡通S70定期卡2 
    42             一卡通S70地铁员工卡
    43                一卡通S70计次卡1
    44                一卡通S70计次卡2
    45           一卡通S70奥运专用卡1
    46           一卡通S70奥运专用卡2
  • 相关阅读:
    《卓有成效的管理者》读后感
    小课堂week13 Clean Code Part2
    小课堂Week12 Clean Code Part1
    小课堂Week11 会说话的代码
    小课堂Week10 例外处理设计的逆袭Part3
    Spark菜鸟学习营Day6 分布式代码运行调试
    UML(一) 类图及类间关系
    分布式事务(一)两阶段提交及JTA
    Java线程间通信方式剖析——Java进阶(四)
    Java进阶(三)多线程开发关键技术
  • 原文地址:https://www.cnblogs.com/winnxm/p/1161198.html
Copyright © 2011-2022 走看看