首页 > 编程笔记 > C#笔记 阅读:14

C# Console.WriteLine()的用法(非常详细)

写一个程序最重要的就是要完美地输出,让使用者可以获得想要的信息,本节就系统讲解 C# 中 Console.WriteLine() 的用法。

Console.WriteLine() 在 System 命名空间内。

C# WriteLine()输出字符串

在 WriteLine() 内,如果没有参数,可以输出空白行,跳行输出。例如:
Console.WriteLine("Hello,早安");
Console.WriteLine();
Console.WriteLine("Hello,再见");
执行结果为:

Hello,早安

Hello,再见

C# WriteLine()参数是字符串和对象

当有多个参数时彼此用逗号,分隔,下列指令中,第 1 个参数是字符串,此字符串内使用大括号标记要格式化的数据,大括号内将要格式化的数据用数字标记,此数字从 0 起算,数字会对应字符串后面的参数,整个说明如下所示。


【实例】参数是字符串和对象的应用。
string name = "洪锦魁";
int score = 90;
Console.WriteLine("{0} 的数学考试得 {1} 分", name, score);
执行结果为:

洪锦魁 的数学考试得 90 分

C# WriteLine()字符串插补

所谓字符串插补(string interpolation),是指字符串左边增加“$”字符,然后将要输出的变量放在大括号内。这是 C# 6.0 后的功能。

例如:
string name = "洪锦魁";
int score = 90;
Console.WriteLine($"{name} 的数学考试得 {score} 分");
执行结果为:

洪锦魁 的数学考试得 90 分

C# WriteLine()格式化输出数字

有关格式化数字的字符符号可以参考下表。

表:格式化数字输出的字符表
字符 说明 实例
C 或 c 货币格式输出 -123 输出 (-NT$123.00)
Dn 或 dn 10 进制输出,n 是输出位数 -123 输出 -123
E 或 e 科学符号输出 -123.45f 输出 -1.2345E+002
Fn 或 fn 含小数字数输出,n 是输出位数 -123.45f 输出 -123.45
G 或 g 一般格式显示数值(默认) -123 输出 -123
N 或 n 含小数,同时有千分位 -123 输出 -123.00
P 或 p 含小数、百分比,同时有千分位 -123.45 输出 -12,345.00 %
X 或 x 16 进制显示 123 输出 FFFFF85

【实例】格式化输出的整体应用。
Console.WriteLine(
    "(C) Currency:...........{0:C}\n" +
    "(C) Currency:...........{1:C}\n" +
    "(D) Decimal:...........{0:D}\n" +
    "(E) Scientific:........{2:E}\n" +
    "(F) Fixed point:.......{2:F}\n" +
    "(G) General:...........{0:G}\n" +
    "(default):............{0} (default = 'G')\n" +
    "(N) Number:...........{0:N}\n" +
    "(P) Percent:...........{2:P}\n" +
    "(X) Hexadecimal:.......{0:X}",
    -1234, 1234, -1234.567f);
执行结果为:
(C) Currency:...........¥-1234,00
(C) Currency:...........¥1234,00
(D) Decimal:...........-1234
(E) Scientific:........-1.234568E+003
(F) Fixed point:.......-1234.567
(G) General:...........-1234
(default):............-1234 (default = 'G')
(N) Number:...........-1234.00
(P) Percent:...........-123,450.70 %
(X) Hexadecimal:.......FFFFFB2E

C# WriteLine()格式化输出日期与时间

假设现在日期是 2024 年 10 月 31 日,时间是 15:54:46,则有关格式化日期与时间的字符符号可以参考下表。

表:格式化日期或时间输出的字符表
字符 说明 实例
d 短日期 Short date 2024/10/31
D 长日期 Long date 2024 年 10 月 31 日
t 短时间 Short time( 不含秒 ) 下午 03:54
T 长时间 Long time( 含秒 ) 下午 03:54:46
f 完整日期 / 短时间 2024 年 10 月 31 日 下午 03:54
F 完整日期 / 长时间 2024 年 10 月 31 日 下午 03:54:46
g 一般日期 / 短时间 2024/10/31 下午 03:54
G 一般日期 / 长时间(这是默认) 2024/10/31 下午 03:54:46
M 月 / 日 10 月 31 日
Y 年 / 月 2024 年 10 月

【实例】输出今天的日期与时间。
DateTime today = DateTime.Now;
Console.WriteLine(
    "(d) Short date:...........{0:d}\n" +
    "(D) Long date:............{0:D}\n" +
    "(t) Short time:..........{0:t}\n" +
    "(T) Long time:............{0:T}\n" +
    "(f) Full date/short time:..{0:f}\n" +
    "(F) Full date/long time:...{0:F}\n" +
    "(g) General date/short time:.{0:g}\n" +
    "(G) General date/long time:..{0:G}\n" +
    "(default):................{0} (default = 'G')\n" +
    "(M) Month:................{0:M}\n" +
    "(Y) Year:.................{0:Y}\n",
    today);
运行结果为:
(d) Short date:...........2024/04/14
(D) Long date:............2024年4月14日
(t) Short time:..........15:54
(T) Long time:............15:54:46
(f) Full date/short time:..2024年4月14日 15:54
(F) Full date/long time:...2024年4月14日 15:54:46
(g) General date/short time:.2024/04/14 15:54
(G) General date/long time:..2024/04/14 15:54:46
(default):................2024/04/14 15:54:46 (default = 'G')
(M) Month:................4月14日
(Y) Year:.................2024年4月
上述程序 DateTime.Now 属于 System 命名空间,DateTime.Now 可以回传目前计算机的日期和时间。

C# WriteLine()预留输出空间与对齐方式

程序设计时有时会想要预留输出的空间,如输出预留 5 格空间;有时会想要输出靠左对齐,有时会想要输出靠右对齐,假设变量是 num,预留 3 格空间,这时可以使用下列格式:
{num, 3};          // 预留 3 格空间,num 靠右对齐
{num, -3};         // 预留 3 格空间,num 靠左对齐
注意,如果预留空间不足,则此预留空间将被忽略,变量内容可以完整显示。

【实例】格式化整数,分别靠左与靠右对齐。
int num = 5;
Console.WriteLine($"靠右对齐 :{num, 3}");
Console.WriteLine($"靠左对齐 :{num,-3}");
执行结果为:
靠右对齐 :  5
靠左对齐 :5 

上述概念也可以应用到 float 或 double 等浮点数上,可以参考下列实例:
double num = 5.12345;
Console.WriteLine($"靠右对齐 :{num,10}");
Console.WriteLine($"靠左对齐 :{num,-10}");
执行结果为:
靠右对齐 :    5.12345
靠左对齐 :5.12345   

在格式化输出中,也可以应用格式化字符,例如含小数点的输出格式化字符是 Fn,n 是小数点位数,假设变量是 num,预留 10 格空间,小数部分预留 2 位空间,这时可以使用下列格式:
{num, 10:F2}      // 预留 10 格空间,小数部分留 2 位,num 靠右对齐
{num, -10:F2}     // 预留 10 格空间,小数部分留 2 位,num 靠左对齐

【实例】格式化双精度浮点数,小数部分留 2 位,分别靠左与靠右对齐。
double num = 5.12345;
Console.WriteLine($"靠右对齐 :{num,10:F2}");
Console.WriteLine($"靠左对齐 :{num,-10:F2}");
执行结果为:

靠右对齐 :    5.12
靠左对齐 :5.12   

C# WriteLine()格式化货币符号输出

前面讲的方法也可以用于货币符号的输出,货币符号的格式化字符是 C 或 c,下列将直接用程序实例来解说。

【实例】货币符号输出的应用。
double bill = 123.5;
double tax = bill * 0.05;
double total = bill + tax;
Console.WriteLine($"bill\t{bill,10:C2}");
Console.WriteLine($"tax\t{tax,10:C2}");
Console.WriteLine(("").PadRight(18, '-'));
Console.WriteLine($"Total\t{total,10:C2}");
执行结果为:
bill         ¥123.50
tax           ¥6.18
-------------------------
Total         ¥129.68
PadRight(18, ‘-’) 是字符串 String 的方法,第 1 个参数是数量,第 2 个参数是输出字符,整个功能是输出 18 个“-”字符。

相关文章