日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java文本块

發(fā)布時(shí)間:2023/12/3 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java文本块 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文本塊是JDK增強(qiáng)建議( JEP 355 ),可以在JDK 13和14中作為預(yù)覽語(yǔ)言功能使用。它計(jì)劃在JDK 15中成為永久性功能。文本塊是跨越多行并不需要的String文字。對(duì)于大多數(shù)轉(zhuǎn)義序列。

動(dòng)機(jī)

在標(biāo)準(zhǔn)Java字符串中嵌入XML,JSON或SQL之類的格式會(huì)變得很煩人。 例如,由于必須進(jìn)行轉(zhuǎn)義,因此只有兩個(gè)鍵的簡(jiǎn)單JSON代碼片段在Java中幾乎無(wú)法讀取:

String json = "{\n" + "\"name\": \"john\",\n" + "\"age\": 42\n" + "}" ;

文本塊進(jìn)行救援

使用新的文本塊功能,我們可以將代碼重寫為:

String text = "" " { "name" : "john" , "age" : "42" } "" ";

使用三引號(hào)(“””)打開(和關(guān)閉)文本塊。 文本從下一行開始。 打開文本塊后,該行的其余部分需要保持空白。

如果我們將此字符串打印到控制臺(tái),我們將看到:

{ "name" : "john" , "age" : "42" }

您可能已經(jīng)注意到,左側(cè)的凹痕已被去除。 這是因?yàn)槲谋緣K的處理分為三個(gè)步驟:

  • 行終止符被標(biāo)準(zhǔn)化為L(zhǎng)F字符。 這樣可以避免不同平臺(tái)(例如Windows和Unix)之間的問題。
  • 偶然的前導(dǎo)空格和所有尾隨空格均被刪除。 偶然的前導(dǎo)空格是通過(guò)找到所有行的前導(dǎo)空格的公共數(shù)量來(lái)確定的。
  • 轉(zhuǎn)義序列被解釋。 文本塊可以包含與標(biāo)準(zhǔn)字符串相同的轉(zhuǎn)義序列(例如\ t或\ n)。 請(qǐng)注意,已經(jīng)添加了兩個(gè)新的轉(zhuǎn)義序列:\ s用于顯式空間,\ <eol>作為連續(xù)指示符(稍后在\ <eol>上有更多介紹)。

如果我們明確需要前導(dǎo)空格,則可以使用indent()方法:

String text = "" " { "name" : "john" , "age" : "42" } "" ".indent( 4 );

這會(huì)在我們的JSON代碼段中添加4個(gè)額外的前導(dǎo)空格。 所以看起來(lái)像這樣:

{ "name" : "john" , "age" : "42" }

或者,我們可以從結(jié)尾的三引號(hào)中刪除4個(gè)前導(dǎo)空格以產(chǎn)生相同的結(jié)果:

String text = "" " { "name" : "john" , "age" : "42" } "" "; // <-- moving this 4 spaces to the left produces 4 additional leading spaces

新的\ <eol>轉(zhuǎn)義序列

使用新的\ <eol>轉(zhuǎn)義序列,我們可以將單行的內(nèi)容拆分為多行,而無(wú)需創(chuàng)建實(shí)際的行終止符。

String text = "" " 1 2 \ 3 \ 4 5 "" ";

結(jié)果是:

1 2 3 4 5

轉(zhuǎn)義三引號(hào)

如果我們需要在文本塊中寫入三引號(hào),則只需要對(duì)第一引號(hào)進(jìn)行轉(zhuǎn)義:

String text = "" " Java text blocks start with \ "" " Java text blocks start with \ "" ";

這將產(chǎn)生:

Java text blocks start with "" " Java text blocks start with

摘要

文本塊是Java編程語(yǔ)言的不錯(cuò)的補(bǔ)充。 通過(guò)支持多行,它們消除了對(duì)雙引號(hào)轉(zhuǎn)義的需要,可以大大提高諸如JSON,XML或SQL之類的嵌入式字符串的可讀性。

建議進(jìn)一步閱讀:Brian Goetz的“ 文本塊” 。

與往常一樣,您可以在GitHub上找到所有提供的示例。

翻譯自: https://www.javacodegeeks.com/2020/06/java-text-blocks-2.html

總結(jié)

以上是生活随笔為你收集整理的Java文本块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。