21

什么是字符串文字\\ 反斜杠?它有什么作用?我想过,但我不明白。我也在维基百科上阅读过。当我尝试打印以下内容时:

System.out.println("Mango \\ Nightangle");

输出是:Mango \ Nightangle

这个字符串文字的意义是什么?

4

6 回答 6

30

\在包括 Java 在内的许多编程语言中用作转义序列。

如果你想

  • 转到下一行然后使用\nor \r,
  • 供标签使用\t
  • 同样要打印一个\"在字符串文字中是特殊的,你必须用另一个\给我们\\\"
于 2012-08-23T12:24:13.340 回答
11

想象一下,您正在设计一种编程语言。您决定将字符串括在引号中(“Apple”)。然后你遇到了第一个问题:既然你已经使用了引号,如何表示它们?只是出于惯例,您决定使用\"引号来表示。那么你有第二个问题:如何表示\?同样,您决定改用不符合惯例\\。值得庆幸的是,该过程到此结束,这就足够了。您还可以使用所谓的转义序列来表示其他字符,例如回车符 ( \n)。

于 2012-08-23T12:31:22.827 回答
4

它用于转义特殊字符并按原样打印它们。例如,要打印用于包含字符串的双引号,您需要使用反斜杠字符对其进行转义。

例如

System.out.println("printing \"this\" in quotes");

输出

printing "this" in quotes
于 2012-08-23T12:24:26.370 回答
3

\用于编程语言中的转义序列。

\n打印换行符
\\打印反斜杠
\"打印 "
\t打印制表符
\b将光标向后移动

于 2012-08-23T12:26:08.457 回答
1

在语句中键入这些特定值时\,它本身用于转义特殊字符,例如\n(新行)、\t(制表)、 (引号)。\"System.out.println()

因此,如果你想打印一个反斜杠,\你不能自己拥有它,因为编译器会期待一个特殊字符(例如上面的那些)。因此,要打印反斜杠,您需要对其进行转义,因为它本身也是这些特殊字符之一,因此,\\yield \

于 2012-08-23T12:26:24.993 回答
-2

如果双反斜杠对您来说很奇怪,C# 还允许逐字字符串文字,其中不需要转义。

Console.WriteLine(@"Mango \ Nightangle");

你不只是希望Java有这样的东西吗;-)

于 2012-08-23T12:28:23.483 回答