一、字符串格式化
你可能已经注意到了,在写代码时候,经常有打印变量的值、打印结果的需求。而且在打印这些信息的时候呢,一般都需要将这些信息以一个特定的格式去打印,这种按特定的格式组合字符串的技术,就叫字符串格式化。(不打印字符串仅仅将内容拼接到一个字符串变量中也叫字符串格式化。)
字符串格式化的三种常用方式
·加号拼接——用加号连接成串
例1:
Console.WriteLine("a = " + 3 + ", b = " + 34);
打印结果:
a = 3, b = 34
·序号占位符——按顺序来
例2:
string fruit = "水果";
Console.WriteLine("{0}吃了{1}" , "我" , fruit);
打印结果:
我吃了水果
解释:打印时可以按照序号0123......的顺序分别编号,然后在后面分别用编号指代想要打印的结果,最后还会按照大小顺序打印。
结合上次的内容可以组合成例3:
string who;
Console.WriteLine("请输入你的名字");
who = Console.ReadLine();
string year;
Console.WriteLine("告诉我你现在几岁");
year = Console.ReadLine();
Console.WriteLine("你是{0},十年后你是{1}岁,但你现在只有{2}岁" , who , int.Parse (year) + 10 , year);
·内插字符串——$的妙用
例4:
string height = "身高"
float result = 1.79f
Console.WriteLine($"你的{height}测出来的结果是{result}米");
打印结果:
你的身高测出来的结果是1.79米
一旦字符串用$符号开头,之后就可以在字符串中用大括号直接引用当前的变量名称,而且变量的值会成为字符串的一部分自动拼接,相对于第二种方法也更加直观。
内插与序号占位区别细节(内插字符串的优势)
当你只想要构造一个字符串
如例3-2
string who;
Console.WriteLine("请输入你的名字");
who = Console.ReadLine();
string year;
Console.WriteLine("告诉我你现在几岁");
year = Console.ReadLine();
Console.WriteLine("你是{0},十年后你是{1}岁,但你现在只有{2}岁" , who , int.Parse (year) + 10 , year);
string info = "你是{0},十年后你是{1}岁,但你现在只有{2}岁" , who , int.Parse (year) + 10 , year);
//因为这里并不是一个函数调用,没有填参数的空间,不符合语法规范,所以需要调用string.Format函数
string.Format函数(Format 格式化)以此借用WriteLine中所写的格式
string info = string.Format("你是{0},十年后你是{1}岁,但你现在只有{2}岁", who, int.Parse(year) + 10 , year);
这是用序号占位符的解决方案,而用字符串内插的方式就更为灵活。
如例4-2
string height = "身高"
float result = 1.79f
Console.WriteLine($"你的{height}测出来的结果是{result}米");
string heightinfo = $"你的{height}测出来的结果是{result}米";
内插字符串可以直接写出来不需要调用string.Format 函数,更加的方便。
二、转义字符
在计算机系统中,有很多特殊的字符他们往往看不见也摸不着,但是却能控制字符串打印的格式。
其中最常用的两个转义字符为换行符\n 与制表符\t
换行符可以使文本进行换行
而制表符可以智能化地腾出一段空间方便表格对齐。(空间不一,视情况改变)
例5:
string height = "身高";
float result = 1.79f;
Console.WriteLine($"你的{height}\n测出来的\n结果是\n{result}米");
打印结果:
你的身高
测出来的
结果是
1.79米
string height = "身高";
float result = 1.79f;
Console.WriteLine($"你的{height}\t测出来的\t结果是\t{result}米");
打印结果:
你的身高 测出来的 结果是 1.79米
*其中由于反斜杠"\"字符作为特殊表示,若本来想打印反斜杠就比较困难,这里可以使用"\\"这样的双斜杠代表一个反斜杠。
同理双引号的打印可以用\" " 来表示一个双引号。