code: static int spanOne(final UnicodeSet set, CharSequence s, int start, int length) {
          char c = s.charAt(start);
          if (c >= 0xd800 && c <= 0xdbff && length >= 2) {
              char c2 = s.charAt(start + 1);
              if (android.icu.text.UTF16.isTrailSurrogate(c2)) {
                  int supplementary = Character.toCodePoint(c, c2);
                  return set.contains(supplementary) ? 2 : -2;
              }
          }
          return set.contains(c) ? 1 : -1;
      }
docs: Does the set contain the next code point?
  If so, return its length; otherwise return its negative length.