java - char 文字 '\"' 与 '"' 相同吗?(反斜杠双引号与仅双引号)

标签 java string char escaping

char 文字 '\"''"' 之间有什么区别吗?

最佳答案

绝对没有区别。两个char==

System.out.println('\"' == '"'); // prints "true"

严格来说,没有必要在 char 文字中对双引号进行转义,但这并没有改变 \" 表示双引号字符 \u0022.

引用资料


String模拟

对于 String 字面值我们也有类似的情况:

System.out.println("\'".equals("'")); // prints "true"

事实上,我们甚至可以更进一步,使用==来实现引用相等:

System.out.println("\'" == "'"); // prints "true"

第二个片段证明两个字符串文字确实相等,因此在编译时进行字符串驻留。

引用资料

  • JLS 3.10.5 String Literals

    String literals --or, more generally, strings that are the values of constant expressions-- are "interned" so as to share unique instances, using the method String.intern.

相关问题


总结

  • char 文字中的单引号必须 被转义
    • 因为 char 字面量用单引号引起来
  • String 文字中的双引号必须 被转义
    • 因为 String 字面量是用双引号引起来的
  • 即使没有必要,逃跑也没什么坏处
    • 选择最易读的内容

关于java - char 文字 '\"' 与 '"' 相同吗?(反斜杠双引号与仅双引号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3224337/

相关文章:

c++ - 如何创建字符串表

c - 什么 ! (char*) 在 C 中的意思

检查命令行输入是否为有效整数 (C)

java - 为什么WEB-INF下的JSP页面不能用sendRedirect方法访问?

java - 如何按私有(private)字段对列表进行排序?

java - Eclipse 插件可精细监控编辑器更改

c# - 如何多次检查一个字符串是否存在某种模式?

java - 使用字符串拆分时是否可以包含某种 OR 逻辑?

C - 在大写字母和数字的输入字符串中添加空格,但有一些异常(exception)

java - 从 Fragment 更改为 Activity