Java中的3个双引号是什么语法?Java15刷新你的认知 |
您所在的位置:网站首页 › 三引号怎么输 › Java中的3个双引号是什么语法?Java15刷新你的认知 |
Java 中的 3 个双引号 “”" 是什么语法? 这是 Java 15 新出的,刷新你的认知! 一、前言 在 Java 15 的推出的时候,Text Blocks 正式转正,我叫它 “文本块” 好了,站长也做了简单介绍,没看过的可以点击这里看下。 文本块,是一个多行字符串,它可以避免使用大多数转义符号,自动以可预测的方式格式化字符串,并让开发人员在需要时可以控制格式。 文本块最早准备在 JDK 12 添加的,但最终撤消了,然后在 JDK 13 中作为预览特性进行了添加,然后又在 JDK 14 中再次预览,在 JDK 15 中,文本块终于转正,暂不再做进一步的更改。 二、示例 来看下这个 HTML 语言示例你就懂了: 不使用 Text Blocks:: 再来看下字节码: 三、详细介绍 其实文本块的作用远不止换行符这么简单,下面栈长详细介绍下。 1、Line terminators(换行符) 如上面介绍,编译器自动增加换行符可以用来增强用非 Java 语言编写的代码的字符串的可读性,比如我们经常要拼接 HTML、XML、SQL 语言代码等,代码非常难看。
Java中的3个双引号是什么语法?Java15刷新你的认知 2020-10-26 13:50·java互联网架构 Java 中的 3 个双引号 “”" 是什么语法? 这是 Java 15 新出的,刷新你的认知! 一、前言 在 Java 15 的推出的时候,Text Blocks 正式转正,我叫它 “文本块” 好了,站长也做了简单介绍,没看过的可以点击这里看下。 文本块,是一个多行字符串,它可以避免使用大多数转义符号,自动以可预测的方式格式化字符串,并让开发人员在需要时可以控制格式。 文本块最早准备在 JDK 12 添加的,但最终撤消了,然后在 JDK 13 中作为预览特性进行了添加,然后又在 JDK 14 中再次预览,在 JDK 15 中,文本块终于转正,暂不再做进一步的更改。 二、示例 来看下这个 HTML 语言示例你就懂了: 不使用 Text Blocks:: Java中的3个双引号是什么语法?Java15刷新你的认知 使用 Text Blocks: Java中的3个双引号是什么语法?Java15刷新你的认知 文本块需要用三个双引号包起来,熟悉 Python 的都知道,三个双引号表示多行注释,没想到 Java 竟然用作了多行字符串…… 再来看下字节码: Java中的3个双引号是什么语法?Java15刷新你的认知 看到了吧?文本块编译后会自动添加换行符,和原始的拼接写法编译结果一致,再也不用再拼接字符串了。 三、详细介绍 其实文本块的作用远不止换行符这么简单,下面栈长详细介绍下。 1、Line terminators(换行符) 如上面介绍,编译器自动增加换行符可以用来增强用非 Java 语言编写的代码的字符串的可读性,比如我们经常要拼接 HTML、XML、SQL 语言代码等,代码非常难看。 Java中的3个双引号是什么语法?Java15刷新你的认知 就等同于: “line 1\nline 2\nline 3\n” 或者: "line 1\n" + "line 2\n" + "line 3\n"如果最后一行不需要换行,可以这么写: """ line 1 line 2 line 3"""还可以定义一个空的文本块: String empty = """ """;一个空字符串也需要两行代码,所以这个方式是不推荐使用的。 2、Incidental white space(空格编排) 继续看上面那段代码: 如果 “”" 在最后单独占一排,则以它左对齐,否则以最靠左的一列左对齐。 另外,Java 15 中新增了 String.stripIndent 实例方法,可以直接删除每一行的开头和结尾空白字符。 3、Escape sequences(转义字符) 如下面代码所示: 结果输出: Hi, "Java技术栈" 欢迎关注,\分享"更多"干货实际工作中可能出现的 SQL 语句的拼写就有救了! 不使用 Text Blocks: String query = "SELECT \"EMP_ID\", \"LAST_NAME\" FROM \"EMPLOYEE_TB\"\n" + "WHERE \"CITY\" = 'INDIANAPOLIS'\n" + "ORDER BY \"EMP_ID\", \"LAST_NAME\";\n";使用 Text Blocks: String query = """ SELECT "EMP_ID", "LAST_NAME" FROM "EMPLOYEE_TB" WHERE "CITY" = 'INDIANAPOLIS' ORDER BY "EMP_ID", "LAST_NAME"; """;当然,拼接 SQL 要注意别造成 SQL 注入漏洞了,这里只是介绍使用。 另外,Java 15 新增了一个 String.translateEscapes 转义方法,可以直接对字符串内容进行转义。 4、格式化参数 Java 15 之前格式化字符串中的参数需要使用 String.format 静态方法,感觉不是很方便,而在 Java 15 中新增了直接格式化字符串的方法: 结果输出: SELECT "EMP_ID", "LAST_NAME" FROM "EMPLOYEE_TB" WHERE "CITY" = '深圳' AND author = '栈长' ORDER BY "EMP_ID", "LAST_NAME";直接使用字符串对象的 formatted 实例方法感觉更方便了! 四、结语 解读 Text Blocks(文本块)远比想象中要难很多,没想到一个文本块这么多细节,文中只是对文本块作了一个部分总结,并不是文本块的全部内容,反正暂时也用不到,大家简单了解即可。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |