在Java中,为什么System.out.println(“\”\\“);给出”\作为输出

时间:2014-06-20 04:17:03

标签: java

在Java中运行System.out.println("\" \\"); 我输出为:

" \

请你详细解释一下,为什么会这样?

8 个答案:

答案 0 :(得分:4)

因为您使用反斜杠("")以及带反斜杠的反斜杠转义双引号(\)。

答案 1 :(得分:3)

System.out.println("\" \");  
System.out.println("   --> String Open
                   \"  --> Double Quote character escaped using backslash
                   \\  --> Backslash itself as a character escaped using backslash
                   "); --> String Close

会为您输出"\

对于转义字符列表,您可以找到here.

  • \t此时在文本中插入一个标签。
  • \b此时在文本中插入退格。
  • \n此时在文字中插入换行符。
  • \r此时在文本中插入回车符。
  • \f此时在文本中插入换页。
  • \'此时在文本中插入单引号字符。
  • \"此时在文本中插入双引号字符。
  • \\此时在文本中插入反斜杠字符。

答案 2 :(得分:3)

backslash是JAVA和许多其他编程语言中的特殊字符,其中一个用途是在某些情况下转义字符。

例如:

如果要打印包含双引号的字符串,例如:How are you "Bob" ?
使用System.out.println("How are you "Bob" ?");打印此内容无效,因为您正在关闭单词Bob之前的引号。因此,一个字符用于处理这种情况,因此可以在字符串中打印双引号:

System.out.println("How are you \"Bob\" ?");

此外,由于我们已经同意\转义双引号,如果要在字符串中打印单个backslash,执行此System.out.println("\");将打开字符串但是将转义第二个双引号,这将导致错误,因为字符串未关闭。要解决此问题,您需要像这样转义backslash:System.out.println(“\”);

\的其他有趣用法:

\n字符返回新行
\t字符用于插入标签

有关转义字符的更多信息,请参阅Wikipedia

答案 3 :(得分:1)

是。你正在逃避两个角色,

String s = "\" \\";

使用单个反斜杠首先转义双引号然后反斜杠。所以你明白了,

" \

您也可以尝试

System.out.println(s.length());

哪会告诉你“3”。因为你有一个''',''和'\'

字符串

Escape Sequences在The Java Tutorial: Characters中解释,它也允许使用Unicode字符

System.out.println("\u03A9");

将输出一个等于

的字符串
 Ω

答案 4 :(得分:0)

除了我的前体的评论之外,您还可以在Oracle的Java Tutorial中查看转义序列列表。

http://docs.oracle.com/javase/tutorial/java/data/characters.html

答案 5 :(得分:0)

这是因为当你在java中的特殊字符前放置\时,\告诉JVM它不是特殊字符,而是它是字符串的一部分。 因此,在您的情况下,当您在\之前放置"时,它会打印一个双quote("),当您再次放置\\时,它会打印slash (\)。 如果您想了解更多相关信息,可以浏览Java内部以及如何在java中处理特殊字符。

希望它有所帮助。

答案 6 :(得分:0)

这些被称为转义序列。所有转义序列都以\(反斜杠)字符开头(例如,\ n,\ t等)。这里\ n,\ t对Java有特殊含义,比如换行符和制表符空格。同样" (双引号)有一个特殊的含义,即在Java中终止字符串文字。而不是制造"作为字符串文字终止符,我们需要告诉java编译器将其视为特殊序列。因此我们使用这些转义序列,如\\(对于反斜杠),\' (单引号),\ r \ n(回车)等,

谢谢, JK

答案 7 :(得分:0)

根据oracle的标准定义如下: 以反斜杠 \ 开头的字符是转义序列,对编译器具有特殊意义。下表显示了 Java 转义序列

转义序列描述

  1. \" 此时在文本中插入一个双引号字符。
  2. \\ 此时在文本中插入一个反斜杠字符。

按照上面对 System.out.println("\" \\") 的描述, \" 将被替换为双 " 引号字符和 \\ 将替换为(单反斜杠)\ 字符。

因此打印的输出将是 " \

希望这会有所帮助。

相关问题