我已經看到了這個char
定義爲 在char ch = '\117'
爲什麼' 117'在Java中是有效的字符文字?
什麼樣的表現的是'\117'
?
我知道escaped-sequence
是'\n'
,例如,或unicode
是`\udddd'
,其中d
是一個十六進制數字,但我從來沒有在我的整個生活中看到這樣的東西作爲'\117'
!令人驚訝的是,它編譯! (輸出是O
)
我已經看到了這個char
定義爲 在char ch = '\117'
爲什麼' 117'在Java中是有效的字符文字?
什麼樣的表現的是'\117'
?
我知道escaped-sequence
是'\n'
,例如,或unicode
是`\udddd'
,其中d
是一個十六進制數字,但我從來沒有在我的整個生活中看到這樣的東西作爲'\117'
!令人驚訝的是,它編譯! (輸出是O
)
這是ascii的八進制表示。您可以在此處看到更多的值:http://donsnotes.com/tech/charsets/ascii.html
它是在八進制,從C/C++保留。
這是因爲它的八進制表示的資本O字符。
如果您嘗試打印您的char ch='\117';
,您會看到它打印O
。
它是字符 「O」 一個八進制值,當我的System.out.println(..)我得到這樣的輸出:
char ch = '\117';
System.out.println("Char is: " + ch);
輸出:
Char is : O
不止於此,它是八進制的ASCII值。 – EJP 2013-02-19 05:44:10
對不起,更新相同:) @EJP – 2013-02-19 05:44:54
請參見[字符和字符串文字的轉義序列](http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html #JLS-3.10.6)。 – EJP 2013-02-19 05:42:10
這是八進制表示法。請參閱[爲什麼Java八進制轉義只能達到255?](http://stackoverflow.com/q/9543026/111424),尤其是[rob mayoff的答案](http://stackoverflow.com/a/9543611/111424 )。這可能是爲了與舊的語言和程序員兼容。 – 2013-02-19 12:00:32