什么是反斜杠字符(\\)?
什么是string文字\\
反斜杠 ? 它有什么作用? 我曾经想过,但我不明白。 我也读过维基百科 。 当我尝试打印以下内容时:
System.out.println("Mango \\ Nightangle");
输出结果是: Mango \ Nightangle
这个string文字的意义是什么?
\
被用作许多编程语言(包括Java)中的转义序列。
如果你想
- 转到下一行然后使用
\n
或\r
, - 供选项卡使用
\t
- 同样打印一个
\
或"
这是特殊的string文字,你必须逃避它与另一\
这给我们\\
和\"
想象一下,你正在devise一种编程语言。 你决定用引号括起string(“苹果”)。 那么你打你的第一个障碍:如何代表引号,因为你已经使用它们? 只是出于惯例,你决定使用\"
来表示引号,然后你有第二个问题:如何表示\
?再一次,出于惯例,你决定使用\\
。谢天谢地,这个过程就结束了,这就足够了也可以使用所谓的转义序列来表示其他字符,例如回车( \n
)。
\
用于编程语言的转义序列。
\n
打印换行符
\\
打印一个反斜杠
\"
打印”
\t
打印一个制表符
\b
将光标移回
它用于转义特殊字符并按原样打印。 例如,要打印用于包围string的双引号,则需要使用反斜线字符进行转义。
例如
System.out.println("printing \"this\" in quotes");
输出
printing "this" in quotes
当在System.out.println()
语句中键入这些特定值时, \"
自己用于转义特殊字符,如\n
(换行), \t
(制表符) \"
(引号)。
因此,如果你想打印一个反斜杠\
,你不能自己拥有它,因为编译器会期待一个特殊的字符(比如上面的那个)。 因此,要打印一个反斜杠,你需要转义它,因为它本身也是这些特殊字符之一,因此\\
yield \
。
如果双反斜杠看起来很奇怪,那么C#也允许不需要转义的逐字string文字 。
Console.WriteLine(@"Mango \ Nightangle");
你不只是希望Java有这样的事情;-)