2012-09-21 138 views
4

在回答其中一個問題時,我遇到了這個有趣的情況。字符串非法轉義字符

如果我的字符串如下,Netbeans不會抱怨它是illegal start of expression

String temp="\19825655."; 

只要我刪除'1',它就會抱怨它是illegal start of expression

String temp="\9825655."; 

找不出這種行爲的原因。任何輸入將不勝感激。

觀察:看來\9\8有特殊的含義。只有\9\8我得到illegal start of expression。所有其他組合,它不抱怨。

+1

您對隨後的數字使用轉義序列。 '\ 98'無效。 –

回答

1

對,所以這意味着組合\1是一個轉義序列。但是,據我所知,這不是一個已知的轉義序列。

編輯:確定這是一個八進制,有趣 - \x Escape in Java?

+0

嗯,我明白那個部分,但是爲什麼\ 8和\ 9不是? – kosa

+1

@Nambari - Java規範指定它們不應該是。請參閱其他答案中的鏈接。 –

+1

這是八進制轉義,八進制只允許數字0-7,所以\ 8不是合法的八進制值。 – Brian