C# 输出字符串格式详解
C#的控制台输出函数是System.Console里面的WriteLine和Write。输出多个字符串可以直接用“ ”连接,比如
int a=10;string b="Hello",double c=222.22;
Console.WriteLine("aaaa" a.ToString() " " b " " c.ToString() "The End");
也可以使用指定格式,
Console.WriteLine("aaaa{0} {1} {2} The End",a,b,c);
效果跟前面是一样的。
WriteLine是控制台输出,ToString则可以用于其它地方,
另外也可以对标准输入输出进行重定向,使ReadLine和WriteLine可以对控件操作:
Process pcmd = new Process();
pcmd.StartInfo.FileName = "cmd";
pcmd.StartInfo.UseShellExecute = false;
pcmd.StartInfo.RedirectStandardInput = true;
pcmd.StartInfo.RedirectStandardOutput = true;
pcmd.StartInfo.RedirectStandardError = true;
pcmd.StartInfo.CreateNoWindow = true;
//string result = null;
pcmd.Start();
pcmd.StandardInput.WriteLine(textBox1.Text);
pcmd.StandardInput.WriteLine("exit");
richTextBox1.Text=pcmd.StandardOutput.ReadToEnd();
ToString函数也可以使用格式。
{}中间的数字是索引,代表列表中参数的序号。
还可以有更高级的用法
格式为{n,w:x}
n为索引,w为宽度,对齐用的,x是格式字符串。
来看个具体的例子:
static void Main(string[] args)
{
double a = 123.456;
System.Console.Write("{0}",a.ToString("F0"));
for (int i = 0; i < 100; i )
{
if (i % 5 == 0) System.Console.WriteLine();
System.Console.Write("{0,5:D2}", i);
}
}
System.Console.Write("{0}",a.ToString("F0"));表示把a精度为0的小数输出。
也可以写成System.Console.Write("{0,3:F0}",a);
System.Console.Write("{0,5:D2}", i);表示宽度为5,精度为2,不足补0。
D表示是整数,其它的标准数字格式字符串有:
C 本地货币格式
E 科学记数法(指数)格式
F 定点(小数)格式
G 常规格式
N 数字格式
P 百分数格式
X 十六进制格式
R 往返过程
还有一种方式是使用占位符:
double a = 1.2345;
System.Console.WriteLine("{0:###.000000}", a);
结果为1.234500
“#”号位置上有字符就输出,没有则不输出,0的位置上有字符就输出,没有就填0。
再来看个例子:
decimal m = 168.24m;
decimal n = 45.8m;
System.Console.WriteLine("{0,8:C2} {1,8:C2} {2,8:C2}", m, n,m-n);
输出结果为
¥168.24
¥45.80
¥122.44
前面有一个空格,因为宽度是8,小数点后保留两位小数,不足补0。
它是右对齐的,我们可以换成左对齐:
¥168.24
¥45.80
¥122.44
“¥”符号是自动加上去的,我们这里选择的是货币格式,它会自动选择适当的符号,RMB当然是¥,要修改可以去控制面板里面设置语言和货币。
以上是数字的格式,另外日期和时间格式字符串也是比较常用的。
static void Main(string[] args)
{
DateTime date1 = new DateTime(2010, 5, 22,19,50,28); //2010年5月22日19点50分28秒
Console.WriteLine(date1.ToString("f",CultureInfo.CreateSpecificCulture("zh-CN")));
}
D 长日期模式 2010年5月22日
f 完整日期/时间模式(短时间) 2010年5月22日 19:50
F 完整日期/时间模式(长时间) 2010年5月22日 19:50:28
g 常规日期/时间模式(短时间) 2010/5/22 19:50
G 常规日期/时间模式(长时间) 2010/5/22 19:50:28
M或m 月日模式 5月22日
t 短时间模式 19:50
T 长时间模式 19:50:28
u 通用的可排序日期/时间模式 2010-05-22 19:50:28Z
U 通用完整日期/时间模式 2010年5月22日 11:50:28
Y或y 年月模式 2010年5月
还可以自定义格式,
{
DateTime date1 = new DateTime(2010, 5, 22,19,50,28);
Console.WriteLine(date1.ToString("yyyy年MM月dd日 tt hh:mm:ss.FF",CultureInfo.CreateSpecificCulture("zh-CN")));
}
输出为2010年05月22日 下午 07:50:28
还有很多用法,详情可以去查MSDN。
输出为 2010年5月22日 19:50,还有其它的:
d 短日期模式 2010/5/22
补充:软件开发 , C# ,