03 C# 第二章 数据类型 - 字符串及字符串格式化

关于字符串 C#本质论中介绍了一些,但关于字符串的格式化输出,书中基本没有介绍,这里整理了网上的一些资料,留着工作中方便参考。

字符串在工作中的使用主要还是基于它的一些属性和函数的,常遇到的问题还是在于处理不同类型的字符串的使用上,例如:日期,货币,数值等等。


C#中字符串的输出格式控制:

与C中printf()函数相似,C#也有格式化输出方法。

语法: System.Console.Write("AAAA {index[,alignment][:format string]}  CCC",  "BBBBB");

index: 占位符,表示后面的目标字符串 "BBBBB" 将会占据该位置,如果有多个目标字符串时,index值会递增,每个目标字符串就会占据响应的位置。

               示例:System.Console.Write("A, {0}, C, {1}, E,{2}", "B", “D”, "F");   ====>输出 A, B, C, D, E, F

               其中 B D F 分别占据了 {0}, {1}, {2}的位置。

alignment:可选,指示首选的格式化字段宽度,是一个带符号的整数。有时我们希望输出的不同长度的字符串时能够在格式上对齐,

               美观一些。所以在某些字符串长度较短时,就需要用指定的一些字符来补齐,alignment用来指定我们希望的字符的宽度。

               示例:            Console.WriteLine("{0, 5}", 0);
                                       Console.WriteLine("{0, 5}", 10);
                                       Console.WriteLine("{0, 5}", 100);

               输出: _ _ _ _ 0 

                            _ _ _ 1 0 

                            _ _ 1 0 0 

format string:可选,指定字符串的输出格式,字符串可以是数值,日期,货币。。。。。。,这里可格式化的东西还挺多的,

               在网上找了些其他网友做挺好的例子,放在这留着工作中使用吧。



代码实例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace string_format
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("{0, 5}", 0);
            Console.WriteLine("{0, 5}", 10);
            Console.WriteLine("{0, 5}", 100);

            Console.WriteLine("一般格式化输出");
            Console.WriteLine("____________________________________________________");
            Console.WriteLine("货币     : {0:C}", 20);
            Console.WriteLine("数值     : {0:d3}",2);
            Console.WriteLine("科学计数 : {0:e}", 200000);
            Console.WriteLine("固定点   : {0:f}", 2.200);
            Console.WriteLine("常规     : {0:g}", 20);
            Console.WriteLine("逗号分隔 : {0:n}", 2000000);
            Console.WriteLine("十六进制 : {0:x}", 20);
            Console.WriteLine("");
            Console.WriteLine("");

            Console.WriteLine("特殊格式化输出");
            Console.WriteLine("____________________________________________________");
            Console.WriteLine("0填充    : {0:00000}", 8);
            Console.WriteLine("0填充    : {0:00000}", 8.8);
            Console.WriteLine("空填充   : {0:#####}", 8);
            Console.WriteLine("空填充   : {0:#####}", 8.8);
            Console.WriteLine("小数点   : {0:###.##}", 8.8);
            Console.WriteLine("逗号分隔 : {0:#,#}", 9876);
            Console.WriteLine("逗号分隔 : {0:#,####,#00}", 9876.543);
            Console.WriteLine("百分号   : {0:0%}", 8.8);
            Console.WriteLine("转译符   : \'");
            Console.WriteLine(@"@ 逐字字符串字面量  : \\'':#$%^&Sm,c.d<>");
            Console.WriteLine(@" start
                          /\
                         /  \
                        /    \
                       /      \
                       --------
             end ");

            Console.WriteLine("");
            Console.WriteLine("");

            Console.WriteLine("日期格式化输出");
            Console.WriteLine("____________________________________________________");
            Console.WriteLine("Short Date                      : {0 :d}", System.DateTime.Now);
            Console.WriteLine("Long  Date                      : {0 :D}", System.DateTime.Now);
            Console.WriteLine("Short Time                      : {0 :t}", System.DateTime.Now);
            Console.WriteLine("Long  Time                      : {0 :T}", System.DateTime.Now);
            Console.WriteLine("Full date & time short          : {0 :f}", System.DateTime.Now);
            Console.WriteLine("Full date & time long           : {0 :F}", System.DateTime.Now);
            Console.WriteLine("Default date & time short       : {0 :g}", System.DateTime.Now);
            Console.WriteLine("Default date & time long        : {0 :G}", System.DateTime.Now);
            Console.WriteLine("Month day pattern               : {0 :M}", System.DateTime.Now);
            Console.WriteLine("RFC1123 date string             : {0 :r}", System.DateTime.Now);
            Console.WriteLine("Sortable date string            : {0 :s}", System.DateTime.Now);
            Console.WriteLine("Universal sortable, local time  : {0 :u}", System.DateTime.Now);
            Console.WriteLine("Universal sortable, GMT         : {0 :U}", System.DateTime.Now);
            Console.WriteLine("Year month pattern              : {0 :Y}", System.DateTime.Now);

            Console.WriteLine("月中的某一天                    : {0 :dd}", System.DateTime.Now);   // 27
            Console.WriteLine("星期中的某一天缩写名称          : {0 :ddd}", System.DateTime.Now);  // 二
            Console.WriteLine("星期中的某一天                  : {0 :dddd}", System.DateTime.Now); // 星期二

            Console.WriteLine("秒的小数部分 精度2位            : {0 :ff}", System.DateTime.Now);   // 18
            Console.WriteLine("秒的小数部分 精度3位            : {0 :fff}", System.DateTime.Now);  // 187
            Console.WriteLine("秒的小数部分 精度4位            : {0 :ffff}", System.DateTime.Now); // 1875
            Console.WriteLine("秒的小数部分 精度5位            : {0 :fffff}", System.DateTime.Now); // 18750
            Console.WriteLine("秒的小数部分 精度6位            : {0 :ffffff}", System.DateTime.Now); // 18750
            Console.WriteLine("秒的小数部分 精度7位            : {0 :fffffff}", System.DateTime.Now); // 18750
            Console.WriteLine("时期或纪元                      : {0 :gg}", System.DateTime.Now);   // A.D.

            Console.WriteLine("12 小时制的小时                 : {0 :hh}", System.DateTime.Now);   // 11
            Console.WriteLine("24 小时制的小时                 : {0 :HH}", System.DateTime.Now);   // 11

            Console.WriteLine("分钟                            : {0 :mm}", System.DateTime.Now);   // 50
            Console.WriteLine("月份                            : {0 :MM}", System.DateTime.Now);   // 03

            Console.WriteLine("月份(缩写)                      : {0 :MMM}", System.DateTime.Now);  // Jan
            Console.WriteLine("月份(全名)                      : {0 :MMMM}", System.DateTime.Now); // Januray

            Console.WriteLine("秒                              : {0 :ss}", System.DateTime.Now);   // 43
            Console.WriteLine("AM/PM指示项                     : {0 :tt}", System.DateTime.Now);   // AM

            Console.WriteLine("不包含纪元的年份                : {0 :yy}", System.DateTime.Now);   // 12
            Console.WriteLine("包含纪元的年份                  : {0 :yyyy}", System.DateTime.Now); // 2012
            Console.WriteLine("时区偏移量                      : {0 :zz}", System.DateTime.Now);   // +08
            Console.WriteLine("完整时区偏移量                  : {0 :zzz}", System.DateTime.Now);  // +08:00
            Console.WriteLine("小时:分钟:秒 由冒号分隔         : {0 :hh:mm:ss}", System.DateTime.Now);  // 11:43:34
            Console.WriteLine("日/月/年 由斜线分隔             : {0 :dd/MM/yyyy}", System.DateTime.Now); // 27/0/2012
            Console.WriteLine("");
            Console.WriteLine("");
            Console.ReadLine();
        }
    }
}


测试结果:

03 C# 第二章 数据类型 - 字符串及字符串格式化_第1张图片




你可能感兴趣的:(03 C# 第二章 数据类型 - 字符串及字符串格式化)