java特殊符號
A. java 特殊符號輸出 絕對基礎
JAVA中轉義字元:
1.八進制轉義序列:\ + 1到3位5數字;范圍'\000'~'\377'
\0:空字元
2.Unicode轉義字元:\u + 四個十六進制數字;0~65535
\u0000:空字元
3.特殊字元:就3個
\":雙引號
\':單引號
\\:反斜線
4.控制字元:5個
\' 單引號字元
\\ 反斜杠字元
\r 回車
\n 換行
\f 走紙換頁
\t 橫向跳格
\b 退格
點的轉義:. ==> u002E
美元符號的轉義:$ ==> u0024
乘方符號的轉義:^ ==> u005E
左大括弧的轉義:{ ==> u007B
左方括弧的轉義:[ ==> u005B
左圓括弧的轉義:( ==> u0028
豎線的轉義:| ==> u007C
右圓括弧的轉義:) ==> u0029
星號的轉義:* ==> u002A
加號的轉義:+ ==> u002B
問號的轉義:? ==> u003F
反斜杠的轉義: ==> u005C
======================================================================
下面的程序使用了兩個Unicode的轉義字元,它們是用其十六進制代碼來表示Unicode字元。那麼,這個程序會列印什麼呢?
Java代碼
public class EscapeRout{
public static void main(String[] args){
// \u0022 是雙引號的Unicode轉義字元
System.out.println("a\u0022.length()
+\u0022b".length());
}
}
public class EscapeRout{
public static void main(String[] args){
// \u0022 是雙引號的Unicode轉義字元
System.out.println("a\u0022.length()
+\u0022b".length());
}
}
對該程序的一種很膚淺的分析會認為它應該列印出26,因為在由兩個雙引號"a\u0022.length()+\u0022b"標識的字元串之間總共有26個字元。
稍微深入一點的分析會認為該程序應該列印16,因為兩個Unicode轉義字元每一個在源文件中都需要用6個字元來表示,但是它們只表示字元串中的一個字元。因此這個字元串應該比它的外表看其來要短10個字元。 如果你運行這個程序,就會發現事情遠不是這么回事。它列印的既不是26也不是16,而是2。
理解這個謎題的關鍵是要知道:Java對在字元串字面常量中的Unicode轉義字元沒有提供任何特殊處理。編譯器在將程序解析成各種符號之前,先將Unicode轉義字元轉換成為它們所表示的字元[JLS 3.2]。因此,程序中的第一個Unicode轉義字元將作為一個單字元字元串字面常量("a")的結束引號,而第二個Unicode轉義字元將作為另一個單字元字元串字面常量("b")的開始引號。程序列印的是表達式"a".length()+"b".length(),即2。
如果該程序的作者確實希望得到這種行為,那麼下面的語句將要清楚得多:
Java代碼
System.out.println("a".length()+"b".length());
更有可能的情況是該作者希望將兩個雙引號字元置於字元串字面常量的內部。使用Unicode轉義字元你是不能實現這一點的,但是你可以使用轉義字元序列來實現[JLS 3.10.6]。表示一個雙引號的轉義字元序列是一個反斜杠後面緊跟著一個雙引號(\」)。如果將最初的程序中的Unicode轉義字元用轉義字元序列來替換,那麼它將列印出所期望的16(錯誤,應該是14,不知道是怎麼會出來16):
Java代碼
System.out.println("a\".length()+\"b".length());
許多字元都有相應的轉義字元序列,包括單引號(\')、換行(\n)、製表符(\t)和反斜線(\\)。你可以在字元字面常量和字元串字面常量中使用轉義字元序列。
實際上,你可以通過使用被稱為八進制轉義字元的特殊類型的轉義字元序列,將任何ASCII字元置於一個字元串字面常量或一個字元字面常量中,但是最好是盡可能地使用普通的轉義字元序列。
普通的轉義字元序列和八進制轉義字元都比Unicode轉義字元要好得多,因為與Unicode轉義字元不同,轉義字元序列是在程序被解析為各種符號之後被處理的。
ASCII是字元集的最小公共特性集,它只有128個字元,但是Unicode有超過65,000個字元。一個Unicode轉義字元可以被用來在只使用ASCII字元的程序中插入一個Unicode字元。一個Unicode轉義字元精確地等價於它所表示的字元。
Unicode轉義字元被設計為用於在程序員需要插入一個不能用源文件字元集表示的字元的情況。它們主要用於將非ASCII字元置於標識符、字元串字面常量、字元字面常量以及注釋中。偶爾地,Unicode轉義字元也被用來在看起來頗為相似的數個字元中明確地標識其中的某一個,從而增加程序的清晰度。
總之,在字元串和字元字面常量中要優先選擇的是轉義字元序列,而不是Unicode轉義字元。Unicode轉義字元可能會因為它們在編譯序列中被處理得過早而引起混亂。不要使用Unicode轉義字元來表示ASCII字元。在字元串和字元字面常量中,應該使用轉義字元序列;對於除這些字面常量之外的情況,應該直接將ASCII字元插入到源文件中。
B. java字元串中的「\u」是什麼意思
在Java字元串中,特殊符號"u"扮演著字元編碼的關鍵角色。它是一個轉義字元,其後緊跟著一個十六進制數,這個十六進制數代表一個特定的字元編碼。例如,"uface"看起來復雜,實際上它是一個編碼值,轉換成十進制就是64206。在編程中,"u"並非僅限於十六進制的面,它也與Unicode字元編碼相關聯,用來表示一個特殊的字元,而反斜杠("")通常被用來標識轉義字元。
在處理字元串時,Java和其他語言的處理方式有所不同。在表示整數時,我們可能會看到"0xface"這樣的格式,但在字元定義中,"u"用於指定Unicode字元。實際上,這只是兩種不同的編碼表示法,而非本質上的差異。
值得注意的是,字元串在Java中的特殊性在於其內置的「串池」機制。當創建字元串對象時,如果內容相同,Java會在內存中僅保存一份,多個變數引用的是同一份對象。例如,"Stringa=abc"和"Stringb=abc",盡管形式相似,但實際上是引用了串池中的同一個字元序列。然而,如果使用"new"關鍵字創建新的字元串,如"Stringc=newString('abc')",則會創建一個獨立的對象,因為每個新實例都擁有獨立的內存空間。
C. java中的特殊符號怎麼打啊
java中的特殊符號不能直接輸出,需要使用轉義字元進行轉義才能正常輸出,如下:
packagecom.bean;
publicclassChange{
publicStringChangeText(Stringtext){
char[]cs=text.toCharArray();
StringBuffersb=newStringBuffer();
for(inti=0;i<cs.length;i++){
charc=cs[i];
if(c==''){
sb.append(" ");//將空格轉換成 
}elseif(c==' '){
sb.append("<br>");
}elseif(c=='>'){
sb.append(">");
}elseif(c=='<'){
sb.append("<");
}elseif(c=='&'){
sb.append("&");
}else{
sb.append(c);
}
}
returnsb.toString();
}
}
輸出的轉義字元為: ,>,<,&,一般用於解析html文件