当前位置:编程学习 > C#/ASP.NET >>

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# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,