我在Java語言規範中閱讀了以下短語。關於Java語言規範的澄清
It is a compile-time error for the character following the SingleCharacter or EscapeSequence to be other than a '.
我無法理解什麼是上面一行的意思。有人可以用例子來解釋它嗎?
我在Java語言規範中閱讀了以下短語。關於Java語言規範的澄清
It is a compile-time error for the character following the SingleCharacter or EscapeSequence to be other than a '.
我無法理解什麼是上面一行的意思。有人可以用例子來解釋它嗎?
這裏說的基本上是:每個字符都會產生一個編譯時間錯誤,它不同於'
,它出現在「字符」本身之後。其中「字符」是字符形式的內容(如:a
,0
, \u0093
)或轉義序列(如:\\
,\b
,\n
)。
所以,這將是錯誤的:
'aa'
,因爲第二a
不是一個單引號('
)。'\\a'
,因爲第二個字符(a
)不是單引號。'a
,因爲「內容」後面的字符不是引號(但可能是換行符或空格)。旁註:這也不行:char c = '\u0027';
。因爲這是單引號的代碼點,所以它被翻譯成:char c = ''';
。
迄今爲止的最佳解釋。 – Ashish
我想這是關於字符文字。另一種說法是:字符文字必須用撇號括起來,如果你忘記第二個撇號,這是一個錯誤。
因此:
'a' // correct
'\007' // correct
'ab // wrong
在Java中,可以定義字符變量爲轉義序列或單個字符。那些應該被單引號包圍。
char ch = 'a';
// Unicode for uppercase Greek omega character
char uniChar = '\u039A';
更多信息和示例可以在Java教程Characters中找到。
http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.4-300 – Kapep