什么是 Java 标识符中的“连接字符”?
2022-08-31 06:05:16
我正在为SCJP阅读,我有一个关于这行的问题:
标识符必须以字母、货币字符 ($) 或连接字符(如下划线 ( _ ))开头。标识符不能以数字开头!
它指出,有效的标识符名称可以以连接字符(如下划线)开头。我以为下划线是唯一有效的选择?还有哪些其他连接角色?
我正在为SCJP阅读,我有一个关于这行的问题:
标识符必须以字母、货币字符 ($) 或连接字符(如下划线 ( _ ))开头。标识符不能以数字开头!
它指出,有效的标识符名称可以以连接字符(如下划线)开头。我以为下划线是唯一有效的选择?还有哪些其他连接角色?
以下是连接字符的列表。这些是用于连接单词的字符。
http://www.fileformat.info/info/unicode/category/Pc/list.htm
U+005F _ LOW LINE
U+203F ‿ UNDERTIE
U+2040 ⁀ CHARACTER TIE
U+2054 ⁔ INVERTED UNDERTIE
U+FE33 ︳ PRESENTATION FORM FOR VERTICAL LOW LINE
U+FE34 ︴ PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
U+FE4D ﹍ DASHED LOW LINE
U+FE4E ﹎ CENTRELINE LOW LINE
U+FE4F ﹏ WAVY LOW LINE
U+FF3F _ FULLWIDTH LOW LINE
这在Java 7上编译。
int _, ‿, ⁀, ⁔, ︳, ︴, ﹍, ﹎, ﹏, _;
举个例子。在本例中为列的名称和给定行的值。tp
Column<Double> ︴tp︴ = table.getColumn("tp", double.class);
double tp = row.getDouble(︴tp︴);
以下
for (int i = Character.MIN_CODE_POINT; i <= Character.MAX_CODE_POINT; i++)
if (Character.isJavaIdentifierStart(i) && !Character.isAlphabetic(i))
System.out.print((char) i + " ");
}
指纹
$ _ ¢ £ ¤ ¥ ؋ ৲ ৳ ৻ ૱ ௹ ฿ ៛ ‿ ⁀ ⁔ ₠ ₡ ₢ ₣ ₤ ₥ ₦ ₦ rs ₩ ₪ ₫ € ₭ ₮ ₯ ₰ ₱ ₲ ₳ ₴ ₵ ₶ ₷ ₸ ₹ ꠸ ریال _ _ _ _ _ $ _ ¢ £ ¥
遍历整个 65k 个字符并询问 。答案是:“底边”十进制8255Character.isJavaIdentifierStart(c)