最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解JAVA中轉(zhuǎn)義字符

 更新時(shí)間:2017年08月15日 17:10:23   作者:賊船叔叔  
本篇文章主要介紹了詳解JAVA中轉(zhuǎn)義字符,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

本文主要介紹JAVA中轉(zhuǎn)義字符,分享給大家。具體如下:

1.八進(jìn)制轉(zhuǎn)義序列:\ + 1到3位5數(shù)字;范圍'\000'~'\377' 

\0:空字符

2.Unicode轉(zhuǎn)義字符:\u + 四個(gè)十六進(jìn)制數(shù)字;0~65535 

\u0000:空字符

3.特殊字符:就3個(gè) 

\":雙引號 
\':單引號 
\\:反斜線

4.控制字符:5個(gè)

\' 單引號字符

\\ 反斜杠字符

\r 回車

\n 換行

\f 走紙換頁

\t 橫向跳格

\b 退格

點(diǎn)的轉(zhuǎn)義:. ==> u002E

美元符號的轉(zhuǎn)義:$ ==> u0024

乘方符號的轉(zhuǎn)義:^ ==> u005E

左大括號的轉(zhuǎn)義:{ ==> u007B

左方括號的轉(zhuǎn)義:[ ==> u005B

左圓括號的轉(zhuǎn)義:( ==> u0028

豎線的轉(zhuǎn)義:| ==> u007C

右圓括號的轉(zhuǎn)義:) ==> u0029

星號的轉(zhuǎn)義:* ==> u002A

加號的轉(zhuǎn)義:+ ==> u002B

問號的轉(zhuǎn)義:? ==> u003F

反斜杠的轉(zhuǎn)義: ==> u005C

下面的程序使用了兩個(gè)Unicode的轉(zhuǎn)義字符,它們是用其十六進(jìn)制代碼來表示Unicode字符。那么,這個(gè)程序會打印什么呢?

public class EscapeRout{  
  public static void main(String[] args){  
    // \u0022 是雙引號的Unicode轉(zhuǎn)義字符  
    System.out.println("a\u0022.length()  
+\u0022b".length());  
  }  
} 

public class EscapeRout{ 
  public static void main(String[] args){ 
    // \u0022 是雙引號的Unicode轉(zhuǎn)義字符 
    System.out.println("a\u0022.length() 
+\u0022b".length()); 
  } 
} 

對該程序的一種很膚淺的分析會認(rèn)為它應(yīng)該打印出26,因?yàn)樵谟蓛蓚€(gè)雙引號"a\u0022.length()+\u0022b"標(biāo)識的字符串之間總共有26個(gè)字符。

稍微深入一點(diǎn)的分析會認(rèn)為該程序應(yīng)該打印16,因?yàn)閮蓚€(gè)Unicode轉(zhuǎn)義字符每一個(gè)在源文件中都需要用6個(gè)字符來表示,但是它們只表示字符串中 的一個(gè)字符。因此這個(gè)字符串應(yīng)該比它的外表看其來要短10個(gè)字符。 如果你運(yùn)行這個(gè)程序,就會發(fā)現(xiàn)事情遠(yuǎn)不是這么回事。它打印的既不是26也不是16,而是2。

理解這個(gè)謎題的關(guān)鍵是要知道:Java對在字符串字面常量中的Unicode轉(zhuǎn)義字符沒有提供任何特殊處理。編譯器在將程序解析成各種符號之前, 先將Unicode轉(zhuǎn)義字符轉(zhuǎn)換成為它們所表示的字符[JLS 3.2]。因此,程序中的第一個(gè)Unicode轉(zhuǎn)義字符將作為一個(gè)單字符字符串字面常量("a")的結(jié)束引號,而第二個(gè)Unicode轉(zhuǎn)義字符將作為另一 個(gè)單字符字符串字面常量("b")的開始引號。程序打印的是表達(dá)式"a".length()+"b".length(),即2。

如果該程序的作者確實(shí)希望得到這種行為,那么下面的語句將要清楚得多:

System.out.println("a".length()+"b".length()); 

更有可能的情況是該作者希望將兩個(gè)雙引號字符置于字符串字面常量的內(nèi)部。使用Unicode轉(zhuǎn)義字符你是不能實(shí)現(xiàn)這一點(diǎn)的,但是你可以使用轉(zhuǎn)義字 符序列來實(shí)現(xiàn)[JLS 3.10.6]。表示一個(gè)雙引號的轉(zhuǎn)義字符序列是一個(gè)反斜杠后面緊跟著一個(gè)雙引號(\”)。如果將最初的程序中的Unicode轉(zhuǎn)義字符用轉(zhuǎn)義字符序列來 替換,那么它將打印出所期望的16(錯(cuò)誤,應(yīng)該是14,不知道是怎么會出來16):

System.out.println("a\".length()+\"b".length()); 

許多字符都有相應(yīng)的轉(zhuǎn)義字符序列,包括單引號(\')、換行(\n)、制表符(\t)和反斜線(\\)。你可以在字符字面常量和字符串字面常量中使用轉(zhuǎn)義字符序列。

實(shí)際上,你可以通過使用被稱為八進(jìn)制轉(zhuǎn)義字符的特殊類型的轉(zhuǎn)義字符序列,將任何ASCII字符置于一個(gè)字符串字面常量或一個(gè)字符字面常量中,但是最好是盡可能地使用普通的轉(zhuǎn)義字符序列。

普通的轉(zhuǎn)義字符序列和八進(jìn)制轉(zhuǎn)義字符都比Unicode轉(zhuǎn)義字符要好得多,因?yàn)榕cUnicode轉(zhuǎn)義字符不同,轉(zhuǎn)義字符序列是在程序被解析為各種符號之后被處理的。

ASCII是字符集的最小公共特性集,它只有128個(gè)字符,但是Unicode有超過65,000個(gè)字符。一個(gè)Unicode轉(zhuǎn)義字符可以被用來在只使用ASCII字符的程序中插入一個(gè)Unicode字符。一個(gè)Unicode轉(zhuǎn)義字符精確地等價(jià)于它所表示的字符。

Unicode轉(zhuǎn)義字符被設(shè)計(jì)為用于在程序員需要插入一個(gè)不能用源文件字符集表示的字符的情況。它們主要用于將非ASCII字符置于標(biāo)識符、字符 串字面常量、字符字面常量以及注釋中。偶爾地,Unicode轉(zhuǎn)義字符也被用來在看起來頗為相似的數(shù)個(gè)字符中明確地標(biāo)識其中的某一個(gè),從而增加程序的清晰 度。

總之,在字符串和字符字面常量中要優(yōu)先選擇的是轉(zhuǎn)義字符序列,而不是Unicode轉(zhuǎn)義字符。Unicode轉(zhuǎn)義字符可能會因?yàn)樗鼈冊诰幾g序列中 被處理得過早而引起混亂。不要使用Unicode轉(zhuǎn)義字符來表示ASCII字符。在字符串和字符字面常量中,應(yīng)該使用轉(zhuǎn)義字符序列;對于除這些字面常量之 外的情況,應(yīng)該直接將ASCII字符插入到源文件中。

java轉(zhuǎn)義字符對照表

點(diǎn)的轉(zhuǎn)義:. ==> u002E

美元符號的轉(zhuǎn)義:$ ==> u0024

乘方符號的轉(zhuǎn)義:^ ==> u005E

左大括號的轉(zhuǎn)義:{ ==> u007B

左方括號的轉(zhuǎn)義:[ ==> u005B

左圓括號的轉(zhuǎn)義:( ==> u0028

豎線的轉(zhuǎn)義:| ==> u007C

右圓括號的轉(zhuǎn)義:) ==> u0029

星號的轉(zhuǎn)義:* ==> u002A

加號的轉(zhuǎn)義:+ ==> u002B

問號的轉(zhuǎn)義:? ==> u003F

反斜杠的轉(zhuǎn)義: ==> u005C

String str2="a$b$c"; 
String strs[]=str2.split("$"); 
for(String str:strs){ 
   System.out.println(str); 
} 

復(fù)制代碼 代碼如下:

String str2="a$b$c";   String strs[]=str2.split("$");   for(String str:strs){    System.out.println(str);   } 

并不會打出 a , b ,c需要轉(zhuǎn)義才可如:

String str2="a$b$c"; 
String strs[]=str2.split("\\u0024"); 
for(String str:strs){ 
   System.out.println(str); 
} 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Java 8中將List轉(zhuǎn)換為Map對象方法

    在Java 8中將List轉(zhuǎn)換為Map對象方法

    這篇文章主要介紹了在Java 8中將List轉(zhuǎn)換為Map對象方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Java實(shí)現(xiàn)的簡單數(shù)字時(shí)鐘功能示例

    Java實(shí)現(xiàn)的簡單數(shù)字時(shí)鐘功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的簡單數(shù)字時(shí)鐘功能,涉及java日期時(shí)間及JFrame框架圖形界面操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-02-02
  • Java判斷上傳圖片格式的實(shí)例代碼

    Java判斷上傳圖片格式的實(shí)例代碼

    這篇文章主要介紹了Java判斷上傳圖片格式的實(shí)例代碼,在文中給大家提到了Java使用文件頭的類型判斷上傳的文件是否為圖片類型,需要的朋友可以參考下
    2019-06-06
  • SpringBoot整合Lombok的步驟詳解

    SpringBoot整合Lombok的步驟詳解

    在Java開發(fā)中,我們經(jīng)常需要編寫大量的模板代碼,比如getter和setter方法、構(gòu)造函數(shù)、toString、equals和hashCode等,本文將詳細(xì)介紹如何在Spring Boot項(xiàng)目中整合Lombok,以及Lombok的一些常用注解,需要的朋友可以參考下
    2024-11-11
  • SpringBoot中連接多個(gè)RabbitMQ的方法詳解

    SpringBoot中連接多個(gè)RabbitMQ的方法詳解

    這篇文章主要介紹了SpringBoot中連接多個(gè)RabbitMQ的方法詳解,要實(shí)現(xiàn) SpringBoot 連接多個(gè) RabbitMQ,只能自定義重寫一些東西,分別配置才可以,下面一起來走一下試試,需要的朋友可以參考下
    2023-10-10
  • java實(shí)現(xiàn)稀疏矩陣的壓縮與解壓的方法

    java實(shí)現(xiàn)稀疏矩陣的壓縮與解壓的方法

    這篇文章主要介紹了java實(shí)現(xiàn)稀疏矩陣的壓縮與解壓 ,把該稀疏矩陣壓縮以三元組形式表示并以文件形式保存,再寫另一個(gè)程序讀取文件中的信息把壓縮后的三元組還原成原來的稀疏矩陣,需要的朋友可以參考下
    2022-03-03
  • WebService教程詳解(一)

    WebService教程詳解(一)

    WebService,顧名思義就是基于Web的服務(wù)。它使用Web(HTTP)方式,接收和響應(yīng)外部系統(tǒng)的某種請求,接下來通過本文給大家介紹WebService教程詳解(一),對webservice教程感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • struts2框架入門

    struts2框架入門

    本文主要介紹了struts2框架的基礎(chǔ)入門知識。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • Struts2實(shí)現(xiàn)生成動態(tài)驗(yàn)證碼并驗(yàn)證實(shí)例代碼

    Struts2實(shí)現(xiàn)生成動態(tài)驗(yàn)證碼并驗(yàn)證實(shí)例代碼

    這篇文章主要介紹了Struts2實(shí)現(xiàn)生成動態(tài)驗(yàn)證碼并驗(yàn)證實(shí)例代碼的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Spring MVC 執(zhí)行流程的簡述

    Spring MVC 執(zhí)行流程的簡述

    這篇文章主要介紹了Spring MVC 執(zhí)行流程的簡述,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

黔西| 天津市| 尼勒克县| 搜索| 安塞县| 太保市| 阿克| 彭州市| 周宁县| 玛曲县| 莱西市| 元氏县| 镇康县| 常德市| 福安市| 丽江市| 武川县| 滨州市| 德江县| 芮城县| 镇江市| 大渡口区| 清徐县| 奇台县| 许昌县| 河津市| 古田县| 余干县| 延津县| 清远市| 新乐市| 固安县| 陵川县| 陈巴尔虎旗| 东丽区| 英吉沙县| 象州县| 宜阳县| 湘乡市| 汉中市| 留坝县|