接続文字は、2つの文字を接続するために使用されます。
Javaでは、接続文字は、Character.getType(int codePoint) / Character.getType(char ch)がCharacter.CONNECTOR_PUNCTUATIONと等しい値を返す文字です。
Javaでは、文字情報はUnicode標準に基づいていることに注意してください。これは、Connector_Punctuationのエイリアスである一般カテゴリPcを割り当てることによって接続文字を識別するものです。
次のコードスニペット、
for (int i = Character.MIN_CODE_POINT; i <= Character.MAX_CODE_POINT; i++) {
if (Character.getType(i) == Character.CONNECTOR_PUNCTUATION
&& Character.isJavaIdentifierStart(i)) {
System.out.println("character: " + String.valueOf(Character.toChars(i))
+ ", codepoint: " + i + ", hexcode: " + Integer.toHexString(i));
}
}
jdk1.6.0_45で識別子を開始するために使用できる接続文字を出力します
character: _, codepoint: 95, hexcode: 5f
character: ‿, codepoint: 8255, hexcode: 203f
character: ⁀, codepoint: 8256, hexcode: 2040
character: ⁔, codepoint: 8276, hexcode: 2054
character: ・, codepoint: 12539, hexcode: 30fb
character: ︳, codepoint: 65075, hexcode: fe33
character: ︴, codepoint: 65076, hexcode: fe34
character: ﹍, codepoint: 65101, hexcode: fe4d
character: ﹎, codepoint: 65102, hexcode: fe4e
character: ﹏, codepoint: 65103, hexcode: fe4f
character: _, codepoint: 65343, hexcode: ff3f
character: ・, codepoint: 65381, hexcode: ff65
以下はjdk1.6.0_45でコンパイルされます。
int _, ‿, ⁀, ⁔, ・, ︳, ︴, ﹍, ﹎, ﹏, _, ・ = 0;
どうやら、上記の宣言は、次の2つの接続文字(下位互換性...おっと!!!)のjdk1.7.0_80&jdk1.8.0_51でコンパイルできません。
character: ・, codepoint: 12539, hexcode: 30fb
character: ・, codepoint: 65381, hexcode: ff65
とにかく、詳細はさておき、この試験はBasic Latin文字セットのみに焦点を当てています。
また、Javaの法的識別子については、ここに仕様が記載されています。詳細については、CharacterクラスAPIを使用してください。