C#入门及进阶教程|C#基本语法(五):控制台应用程序与格式化输出
目录
控制台应用程序与格式化输出
1.控制台(Console类)
1.1控制台输出
1.2控制台输入
1.3格式输出的一般形式
1.4字符串的格式化输出
1.5日期和时间的格式化输出
控制台应用程序与格式化输出
1.控制台(Console类)
1.1控制台输出
Console.Write ();
Console.WriteLine();
1.2控制台输入
Console.ReadKey(); //标准输入流读取用户按下的字符或功能键。
Console.ReadLine(); //从标准输入流读取一行字符。
1.3格式输出的一般形式
格式输出的一般形式为: {N [, M][: 格式码]}, 其中,[ ]:表示其中的内容为可选项。N:从零开始的整数,表示第几个参数。M:可选整数,表示最小长度。若参数N的长度小于M,就用空格填充。如果M为负,则左对齐;如果M为正,则右对齐;如果未指定M,则默认为零。
格式码:可选的格式化代码字符串。
常用格式码及举例:
格 式 符 | 含 义 | 示例:(int i=10;double x=10.5;) | 输出结果 |
C | 将数字按照金额形式输出 | Console.WriteLine("{0:C}",i); Console.WriteLine("{0:C}",x); | ¥10.00 ¥10.50 |
D | 输出十进制整数 | Console.WriteLine("{0:D}",i); Console.WriteLine("{0:D5}",i); | 10 00010 |
F | 小数点后固定位数 | Console.WriteLine("{0:F}",i); Console.WriteLine("{0:F4}",x); | 10.00 10.5000 |
0 | 0占位符,如果数字位数不够指定的占位符位数,则左边补0至占位符位数;如果数字位数超过指定的占位符位数,则按照原数字实际位数原样输出。如果小数部分的位数超出指定的占位符位数,则多余的部分四舍五入。 | Console.WriteLine("{0:00000}", 123); Console.WriteLine("{0:000}", 12345); Console.WriteLine("{0:0000}", 123.64); Console.WriteLine("{0:00.00}", 123.6484); | 00123 12345 0124 123.65 |
# | #占位符。对整数部分,去掉数字左边的无效0;对小数部分,按照四舍五入原则处理后,再去掉右边的无效0。如果这个数就是0,而又不想让它显示的时候,#占位符很有用 | Console.WriteLine("{0:####}", 123); Console.WriteLine("{0:####}", 123.64); Console.WriteLine("{0:####.###}", 123.64); Console.WriteLine("{0:####.##}", 0); Console.WriteLine("{0:####.##}", 123.648); | 123 124 123.64 123.65 |
1.4字符串的格式化输出
对于字符串来说,可以直接利用格式化输出得到希望的格式,例如:
string s = string.Format("{0, 30}", ' '); //s得到的结果为30个空格的字符串
string s1 =string.Format("{0, -20}", "15"); //s1得到的结果为左对齐长度为20的字符串
常用格式举例:
1) 在ToString中使用d格式
int i = 12345;
// i.ToString("d")表示将i按照实际整数宽度转换为字符串
string str = i.ToString("d");
Console.WriteLine(str); //结果12345
// i.ToString("d8")表示将i转换为字符串,宽度为8位,不够8位左边用0填充
string str1 = i.ToString("d8");
Console.WriteLine(str1); //结果00012345
2)在string.Format中使用d格式
int i = 123;
// {0,7:d}表示第0个参数,宽度7位,不够7位左边用空格填充,d表示十进制整数
string s1 = string.Format("the value is {0,7:d}",i);
Console.WriteLine(s1); //结果 the value is 123
3) 在ToString中使用f格式
double i = 12345.6789;
// f2表示浮点数小数部分为2位,多余部分四舍五入,不够2位时右边补零
string str = i.ToString("f2");
Console.WriteLine(str); //结果 12345.68
string str1 = i.ToString("f6");
Console.WriteLine(str1); //结果 12345.678900
4) 在ToString中使用n格式
double i = 12345.6789;
// n表示整数部分从小数点向左每3位用逗号分隔开,小数部分2位,多余部分四舍五入
string str = i.ToString("n");
Console.WriteLine(str); //结果 12,345.68
// n4表示整数部分从小数点向左每3位用逗号分隔开,小数部分4位,多余部分四舍五入
string str1 = i.ToString("n4");
Console.WriteLine(str1); //结果 12,345.6789
5) 在ToString中使用p格式
double i = 0.126;
// p表示百分数形式
string s = string.Format("the value is {0:p}",i);
Console.WriteLine(s); //结果 the value is 12.60%
string str = i.ToString("p");
Console.WriteLine(str); //结果 12.60%
1.5日期和时间的格式化输出
DateTime dt = new DateTime(2006,5,25);
// yy表示年占两位,M表示月占1位,超出1位按实际位数
// d表示日占1位,超出1位按实际位数
string str = dt.ToString("yy.M.d");
Console.WriteLine(str); //结果 06.5.25
//yyyy表示年占4位,M表示月占1位,超出1位按实际位数,其他按原字符输出
string str1 = dt.ToString("yyyy年M月");
Console.WriteLine(str1); //结果 2006年5月