关于字符串 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(); } } }
测试结果: