2013-09-27 22 views
15

以下代碼片段返回Java 6上的46059和Java 7上的48757。任何想法可能會改變?Character.isLetterOrDigit(char)在Java 6和7中返回不同的值

int i = 0; 
for(char c = Character.MIN_VALUE; c < Character.MAX_VALUE; c++){ 
    if(Character.isLetterOrDigit(c)){ 
     i++; 
    } 
} 
System.out.println(i); 
+2

(最有可能更多的字符集被添加到7.) –

+0

打印字符連同'isLetterOrDigit'的結果並比較輸出。要麼他們改變了一些定義,或者他們支持更多的字符。 –

+0

@JoeriHendrickx - 打印65K「結果」將是一項任務。 –

回答

16

我懷疑this document持有的答案:從Unicode

新的腳本和人物6.0.0
的Java SE 7中發佈的早期版本增加了對Unicode的支持5.1.0。 Java SE 7發行版的最終版本支持Unicode 6.0.0。 Unicode 6.0.0是Unicode標準的主要版本,增加了對超過2000個額外字符的支持,以及對屬性和數據文件的支持。

+0

此外,用於Character的javadoc顯示了不同級別的[6](http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html)和[7](http ://docs.oracle.com/javase/7/docs/api/java/lang/Character.html) – 2013-09-27 11:09:16