fork download
  1. class Main {
  2. public static void main(String[] args) {
  3. // I caratteri alle posizioni 4/5, 7/8, 10/11 richiedono surrogate pairs
  4. String s = "abcd𝒞a𝒮b𝔹asdf";
  5. System.out.println((int)s.charAt(0)==s.codePointAt(0)); // true, infatti il primo carattere sta in un solo char
  6. System.out.println((int)s.charAt(4)==s.codePointAt(4)); // false, il carattere alla posizione 4 richiede surrogate pairs
  7. // esaminiamo da "vicino" un carattere strambo
  8. System.out.print(s.substring(4,6) + " = codepoint " + Integer.toString(s.codePointAt(4),16));
  9. System.out.println(" = coppia surrogata " + Integer.toString(s.charAt(4),16) + " - " + Integer.toString(s.charAt(5),16));
  10. }
  11. }
Success #stdin #stdout 0.07s 380224KB
stdin
Standard input is empty
stdout
true
false
𝒞 = codepoint 1d49e = coppia surrogata d835 - dc9e