c#语言基础编程-转义符

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();

此时输出为:c#语言基础编程-转义符

如改为:

Console.WriteLine("IP:{0}\n  Port:{1}\n  service:{2}", parts[0], parts[1], parts.Length == 3 ? parts[2] : "http");

结果为:c#语言基础编程-转义符

如果改为:

 Console.WriteLine("IP:{0}\r  Port:{1}\r  service:{2}", parts[0], parts[1], parts.Length == 3 ? parts[2] : "http");

结果为:c#语言基础编程-转义符

如果改为:

Console.WriteLine("IP:{0}  Port:{1}\r  service:{2}", parts[0], parts[1], parts.Length == 3 ? parts[2] : "http");

结果为:c#语言基础编程-转义符

此处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");

结果为:c#语言基础编程-转义符

此处意味着其实结果都打印出来,在打印Ip后,回车键但是没有换行,然后在本行开始出,继续打印,最后一部本分ip信息被遮盖。

2、输出双引号和单引号

如果在程序中有双引号,怎么查找或者怎么打印出双引号。其实在双引号前加\就可以了。

比如:

textbox.text=”你是\”天才\”,哈哈!”

显示什么?

显示:你是“天才”哈哈。

同样对于单引号。

那么如果想显示出”\t”,又该怎么做呢?

Response.Write(“\”\t\”“);

显示结果: “\t”

记得在程序中@还是很重要的,让转义符不再起作用,以防文件命中有t或者n

比如:c:\temp,这个就会出错。

上一篇:用nodejs搭建代理服务器


下一篇:蒙特卡罗算法(Monte Carlo method)