code: @Deprecated
      public static int compare(CharSequence string, int codePoint) {
          if (codePoint < Character.MIN_CODE_POINT || codePoint > Character.MAX_CODE_POINT) {
              throw new IllegalArgumentException();
          }
          int stringLength = string.length();
          if (stringLength == 0) {
              return -1;
          }
          char firstChar = string.charAt(0);
          int offset = codePoint - Character.MIN_SUPPLEMENTARY_CODE_POINT;
  
          if (offset < 0) { // BMP codePoint
              int result = firstChar - codePoint;
              if (result != 0) {
                  return result;
              }
              return stringLength - 1;
          } 
          // non BMP
          char lead = (char)((offset >>> 10) + Character.MIN_HIGH_SURROGATE);
          int result = firstChar - lead;
          if (result != 0) {
              return result;
          }
          if (stringLength > 1) {
              char trail = (char)((offset & 0x3ff) + Character.MIN_LOW_SURROGATE);
              result = string.charAt(1) - trail;
              if (result != 0) {
                  return result;
              }
          }
          return stringLength - 2;
      }
docs: Utility to compare a string to a code point.
  Same results as turning the code point into a string (with the [ugly] new StringBuilder().appendCodePoint(codepoint).toString())
  and comparing, but much faster (no object creation).
  Actually, there is one difference; a null compares as less.
  Note that this (=String) order is UTF-16 order -- *not* code point order.
  
  @deprecated This API is ICU internal only.
  @hide draft / provisional / internal are hidden on Android