SORU
7 Mart 2013, PERŞEMBE


Neden bazı ASCII karakter şeklinde ifade '\uXXXX' Java kaynak kodunu değil mi?

Bu tökezlemiştim (tekrar) bugün:

class Test {
    char ok = '\n';
    char okAsWell = '\u000B';
    char error = '\u000A';
}

Derleme:

Geçersiz karakter satır 4'te sabit.

Derleyici '\n' yerine. ben yazmak konusunda ısrarlı görünüyor Bunun için bir sebep göremiyorum, henüz değilçoksinir bozucu.

Özel bir gösterim var neden mantıklı bir açıklama (\t, \n, \rgibi) vargerekirJava kaynağı olduğu şeklinde ifade edilebilir?

CEVAP
7 Mart 2013, PERŞEMBE


Unicode karakter değeri ile değiştirilir, satır derleyici tarafından değiştirilir:

char error = '
';

Java geçerli bir deyim değildir.

Bu Language Specification tarafından dikte

Bir derleyici için Java programlama dili ("Java derleyici") ilk tanır Unicode kaçar kendi giriş, çeviren ASCII karakterler \u takip ederek dört onaltılık basamak için UTF-16 kod birimi (madde 3.1) gösterilen onaltılık değeri, ve geçen tüm diğer karakterler değişmiyor. Takıma giren karakterleri temsil eden iki ardışık Unicode kaçar gerektirir. Bu çeviri adım giriş Unicode karakter dizisi olur.

Bu şaşırtıcı şeyler neden olabilir, örneğin, bu geçerli bir Java programı (gizli unicode karakterleri içerir) - courtesy of Peter Lawrey:

public static void main(String[] args) {
    for (char c‮h = 0; c‮h < Character.MAX_VALUE; c‮h  ) {
        if (Character.isJavaIdentifierPart(c‮h) && !Character.isJavaIdentifierStart(c‮h)) {
            System.out.printf("x <%s>%n", (int) c‮h, ""   c‮h);
        }
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Edge-CGI 3D Tutorials and more!

    Edge-CGI 3D

    11 HAZİRAN 2013
  • SuperPrincessjo

    SuperPrinces

    1 EKİM 2010
  • YAN TV

    YAN TV

    20 EKİM 2011