C#转义字符:
引言
为了在程序中能够控制字符的输出以及区分开双引号和单引号(双引号和单引号在程序中标示里面的内容为字符串和字符),所以用一种特殊的字符常量;是·以反斜线”\”开头,后跟一个或几个字符。让其·具有特定的含义,不同于字符原有的意义,故称“转义”字符。·用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义” 。为控制输出的转义字符:
\0 空
\a 警告(产生峰鸣)
\b 退格
\f 换页
\n 换行,光标移到下行
\r 回车,光标在本行
\t 水平制表符
\v 垂直制表符
为表示双引号和单引号:
\’ 单引号
\” 双引号
\ 反斜杠
c#里 @ 表示的是:
所以,@的作用就应该是忽略转义字符的作用.
在C#中,”c:\temp”表示路径是c:\temp; 而@”c:\temp”就表示c:\temp;
其中意味着\t就不再转义符了。
例子
1、常用的就是\n和\r了。
#region 192.168.10.5[port=21,type=ftp] 192.168.10.5[port=21]
string msg = "192.168.10.5[port=21,type=ftp]";
string[] parts = msg.Split(new string[] { "[port=", ",type=", "]" }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("IP:{0} Port:{1} service:{2}", parts[0], parts[1], parts.Length == 3 ? parts[2] : "http");
Console.ReadLine();
此时输出为:
如改为:
Console.WriteLine("IP:{0}\n Port:{1}\n service:{2}", parts[0], parts[1], parts.Length == 3 ? parts[2] : "http");
结果为:
如果改为:
Console.WriteLine("IP:{0}\r Port:{1}\r service:{2}", parts[0], parts[1], parts.Length == 3 ? parts[2] : "http");
结果为:
如果改为:
Console.WriteLine("IP:{0} Port:{1}\r service:{2}", parts[0], parts[1], parts.Length == 3 ? parts[2] : "http");
结果为:
此处Ip其实被打印出来了,ip和port都被打印出来,然后回车键,光标来到起始点,然后service的信息遮盖住了ip信息,但是port信息没有遮盖住,所以port信息输出了。
如果改为:
Console.WriteLine("IP:{0}\r Port:{1}\n service:{2}", parts[0], parts[1], parts.Length == 3 ? parts[2] : "http");
结果为:
此处意味着其实结果都打印出来,在打印Ip后,回车键但是没有换行,然后在本行开始出,继续打印,最后一部本分ip信息被遮盖。
2、输出双引号和单引号
如果在程序中有双引号,怎么查找或者怎么打印出双引号。其实在双引号前加\就可以了。
比如:
textbox.text=”你是\”天才\”,哈哈!”
显示什么?
显示:你是“天才”哈哈。
同样对于单引号。
那么如果想显示出”\t”,又该怎么做呢?
Response.Write(“\”\t\”“);
显示结果: “\t”
记得在程序中@还是很重要的,让转义符不再起作用,以防文件命中有t或者n
比如:c:\temp,这个就会出错。