Java的Character.isIdentifierPart()-函数给出“ true”的最大整数是什么

时间:2019-03-24 14:13:31

标签: java unicode

我是Java的新手,在阅读时,我了解到某些字符在命名Java标识符时无法使用。尽管我同意由于键盘(在键盘中不可用)可能会限制可用的字符,但我想知道Java可以将哪些字符用作标识符。我相应地编写了代码,并使用了Character.isJavaIdentifierPart()-问题是我不知道将什么用作迭代的最大int值。因为设置i值Character.MAXVALUE(取决于所使用的系统吗?)将其限制为65535,所以我看到有超过65535的字符。有人可以帮我解决这个问题。

for(int i =0;i<Character.MAX_VALUE; i++) {      
printWriter.println(Character.isJavaIdentifierPart(i) + " " + (char) i + " " + i);
System.out.println(i);

}

在我使用109385代替Character.MAX_VALUE的情况下,Java仍会识别某些可以在标识符中使用的字符,超过65535- 1.有人可以让我知道我可以用来识别可用于Java标识符的所有字符的最大i值吗?为什么? 2.我的理解正确吗,因为我的Character.MAX_VALUE是65355,所以我不能再存储任何其他字符。

谢谢!

1 个答案:

答案 0 :(得分:2)

Unicode包含超过65536个字符,并且每个新版本的Unicode都会添加新字符。因此,对于任何特定版本的Unicode,都有可能使用最大的代码来标识有效的Java标识符部分字符,此值对于将来的版本可能会有所不同,Character.MAX_CODE_POINT可能是唯一可靠的上限。