2013-07-12 18 views

Odpowiedz

22

Jest to ósemkowa sekwencja ucieczki, wymieniona w section 3.10.6 JLS. Tak więc na przykład:

String x = "\16"; 

odpowiada:

String x = "\u000E"; 

(jak ósemkowej 16 = Hex E.)

tak \1 nas U + 0001, "Start z pozycji" charakter.

Ośmioro sekwencje ucieczki są bardzo rzadko używane w Javie na moim doświadczeniu i osobiście unikam ich, jeśli to możliwe. Gdy chcę określić znak za pomocą numerycznej sekwencji specjalnej, zawsze używam \uxxxx.

+0

Java jest jednym z tych języków, które sprawiają, że przysięgam obficie po trafieniu „przypadkowe” błędy to ma. Czy wiesz, że Java interpretuje ucieczki znaków jako * literalną * postać kodu źródłowego? Cóż, nie stanowi to problemu, dopóki nie spróbujesz uciec powrotowi z karetki ... wtedy Java myśli, że utknąłeś w nowym kodzie źródłowym, kiedy naprawdę tego nie chcesz. –

+1

@PP .: To zależy od tego, którą postać uciekniesz. Na przykład komentarz '// To \ n jest w porządku' jest w porządku, ale' // To \ u000a nie jest' nie zostanie skompilowane. –

+0

Twoja druga linia kodu nie jest kompilowana (przynajmniej na moim komputerze): * "literał łańcuchowy nie jest poprawnie zamknięty podwójnym cudzysłowem" *. – sp00m

2

w Javie jest następujące wartości

\u0001