关于字符串对齐的问题

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

 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

转载于:https://www.cnblogs.com/winnxm/archive/2008/04/19/1161198.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值