Как заменить все дополнительные символы, но оставить все дополнительные как есть?

У меня проблема с Java Regex, примененным к дополнительным символам

String x = new StringBuilder().appendCodePoint(0x10001).toString();
// x == "" (char['\uD800', '\uDC01']) - ok
String y = x.replaceAll("[\\x{10000}-\\x{10010}]", "*");
// y == "*" (char['*']) - ok
String z = x.replaceAll("[^\\x{10000}-\\x{10010}]", "*");
// z == "�*" (char['\uD800', '*']) - NOT ok

Я ожидаю что x == z, Что я делаю неправильно? jdk1.8.0_144

0 ответов

Другие вопросы по тегам