Java 13:文本块

Java 13已交付了期待已久的多行字符串或Text Blocks 。 您不再需要连接跨越多行的字符串或转义特殊字符,这确实提高了代码的可读性。 文本块是一种预览语言功能 ,这意味着必须使用--enable-preview标志在Java编译器和运行时中明确启用它们。

这是一个文本块的示例:

 String textBlock = "" " 
     <html> 
       <body> 
         <p style= "color:red" >This is a text block</p> 
       </body> 
     </html> "" "; 

如上所示,一个文本块用三个双引号( """ )引起来, """开头不能跟任何非空白字符,即实际文本必须在开头定界符之后的行上开始。 您无需在文本块内转义任何特殊字符,这太好了!

在Java的早期版本中,您将不得不这样编写:

 final String old = "<html>\n" + 
     "\t<body>\n" + 
     "\t\t<p style=\"color:red\">This is a text block</p>\n" + 
     "\t</body>\n" + 
     "</html>" ; 

实际上,在此示例中, textBlock == old因为两者的内容完全相同,并且在String池中引用的对象相同。

现在,通过考虑以下两个文本块,看看如何处理前导空白:

 String textBlock1 = "" " 
     <html> 
       <body> 
         <p style= "color:red" >This is a text block</p> 
       </body> 
     </html> "" ";   String textBlock2 = "" " 
         <html> 
           <body> 
             <p style= "color:red" >This is a text block</p> 
           </body> 
         </html> 
  "" "; 

如果您打印出这两个文本块,则第一个打印为:

 <html> 
   <body> 
     <p style= "color:red" >This is a text block</p> 
   </body>  </html> 

第二个是:

 <html> 
           <body> 
             <p style= "color:red" >This is a text block</p> 
           </body> 
         </html> 

文本块中任何行上的最左非空白字符或最左边的分隔符确定整个块的“起点”,并且从该起点开始,每行都保留空白。

要注意的另一点是,在文本块中删除了每行末尾的空白,但是您可以使用八进制转义序列\040来保留它,如下所示:

 String octal = "" " 
     line 1 \ 040 
  line 2 line "" "; 

翻译自: https://www.javacodegeeks.com/2019/10/java-13-text-blocks.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值