class Main {
public static void main
(String[] args
) { // I caratteri alle posizioni 4/5, 7/8, 10/11 richiedono surrogate pairs
System.
out.
println((int)s.
charAt(0)==s.
codePointAt(0)); // true, infatti il primo carattere sta in un solo char System.
out.
println((int)s.
charAt(4)==s.
codePointAt(4)); // false, il carattere alla posizione 4 richiede surrogate pairs // esaminiamo da "vicino" un carattere strambo
System.
out.
print(s.
substring(4,
6) + " = codepoint " + Integer.
toString(s.
codePointAt(4),
16)); System.
out.
println(" = coppia surrogata " + Integer.
toString(s.
charAt(4),
16) + " - " + Integer.
toString(s.
charAt(5),
16)); }
}
Y2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgLy8gSSBjYXJhdHRlcmkgYWxsZSBwb3NpemlvbmkgNC81LCA3LzgsIDEwLzExIHJpY2hpZWRvbm8gc3Vycm9nYXRlIHBhaXJzCiAgICAgICAgU3RyaW5nIHMgPSAiYWJjZPCdkp5h8J2SrmLwnZS5YXNkZiI7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKChpbnQpcy5jaGFyQXQoMCk9PXMuY29kZVBvaW50QXQoMCkpOyAvLyB0cnVlLCBpbmZhdHRpIGlsIHByaW1vIGNhcmF0dGVyZSBzdGEgaW4gdW4gc29sbyBjaGFyCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKChpbnQpcy5jaGFyQXQoNCk9PXMuY29kZVBvaW50QXQoNCkpOyAvLyBmYWxzZSwgaWwgY2FyYXR0ZXJlIGFsbGEgcG9zaXppb25lIDQgcmljaGllZGUgc3Vycm9nYXRlIHBhaXJzCiAgICAgICAgLy8gZXNhbWluaWFtbyBkYSAidmljaW5vIiB1biBjYXJhdHRlcmUgc3RyYW1ibwogICAgICAgIFN5c3RlbS5vdXQucHJpbnQocy5zdWJzdHJpbmcoNCw2KSArICIgPSBjb2RlcG9pbnQgIiArIEludGVnZXIudG9TdHJpbmcocy5jb2RlUG9pbnRBdCg0KSwxNikpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiID0gY29wcGlhIHN1cnJvZ2F0YSAiICsgSW50ZWdlci50b1N0cmluZyhzLmNoYXJBdCg0KSwxNikgKyAiIC0gIiArIEludGVnZXIudG9TdHJpbmcocy5jaGFyQXQoNSksMTYpKTsKICAgIH0KfQ==