程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java Unicode轉義字符的小小研究

Java Unicode轉義字符的小小研究

編輯:JAVA編程入門知識

  轉義字符
    所有的轉義字符都是由 '' 打頭的
    第二個字符
        0-9  :八進制
        u    :是Unicode轉意,長度固定為6位
        Other:則為以下字母中的一個 b,t,n,f,r,",
              都不滿足,則產生一個編譯錯誤。

  
    當然了,提供八進制也是為了和C語言兼容.

    b,t,n,f,r 則是為控制字符.書上的意思為:描述數據流的發送者希望那些信息如何被格式化或者被表示.

    Unicode轉義字符非常有趣
    它可以寫在代碼的任意位置,只要轉義後是合法的.
    例如:

    int c=0u003b
    上面的代碼可以編譯通過,等同於int c=0; u003b也就是';'的Unicode代碼

    上面的例子不能讓人很信服,所以特地寫了下面這一段代碼用來將字符串轉換成為unicode字符
    然後你可以將打印出來的代碼放置在EggHello.Java中,然後運行它,結果是讓人激動的。

  
  /*
   * author:雞蛋 date:2004/11/10 字符串轉換為Unicode
   */
  public class Asc2Unicode {
   private StringBuffer ch;

   private StringBuffer tch;

   Asc2Unicode(StringBuffer s) {
    ch = s;
    if (ch.length() > 0)
     tch = new StringBuffer(1000);
   }

   void transform() {
    if (ch.length() < 1)
     return;
    for (int i = 0; i < ch.length(); i++) {
     (new Integer((int) ch.charAt(0))).toString();
     tch.append(new StringBuffer("u00"));
     tch.append(new StringBuffer(new String(Integer.toHexString((int) ch
       .charAt(i)))));
    }
   }

   StringBuffer getStr() {
    return tch;
   }

   public static void main(String[] argv) {
    Asc2Unicode au = new Asc2Unicode(new StringBuffer(new String(
      "public class EggHello{"
        + "   public static void main(String[] argv){"
        + "System.out.println("Hello,World");" + "}" + "}"
    )
    ));
    au.transform();
    System.out.println(au.getStr());
   }
  }

  
  打印如下:
  u0070u0075u0062u006cu0069u0063u0020u0063u006cu0061u0073u0073u0020u0045u0067u0067u0048u0065u006cu006cu006fu007bu0020u0020u0020u0070u0075u0062u006cu0069u0063u0020u0073u0074u0061u0074u0069u0063u0020u0076u006fu0069u0064u0020u006du0061u0069u006eu0028u0053u0074u0072u0069u006eu0067u005bu005du0020u0061u0072u0067u0076u0029u007bu0053u0079u0073u0074u0065u006du002eu006fu0075u0074u002eu0070u0072u0069u006eu0074u006cu006eu0028u0022u0048u0065u006cu006cu006fu002cu0057u006fu0072u006cu0064u0022u0029u003bu007du007d
  

  
    感覺有點像加密的代碼一樣! 當然那都是掩耳盜鈴。。。
    不過初看起來還是比較讓人頭暈的。

    Unicode轉義就先研究到這裡,喝點水,打會游戲。。。
  
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved