docs: public static int stringSize(long x) {
      if(x < 0) {
        // Avoid overflow on extreme negative
        return (x == Long.MIN_VALUE) ? 20 : stringSize(-x) + 1;
      }
      // This is almost a binary search - 10 cases is not a power of two, and we
      // assume that the smaller values are more frequent.
      return (x <= Integer.MAX_VALUE) ? stringSize((int) x) : //
          (x < 10000000000000L) // 10-13 vs. 14-19
              ? (x < 100000000000L) // 10-11 vs. 12-13
                  ? ((x < 10000000000L) ? 10 : 11) //
                  : ((x < 1000000000000L) ? 12 : 13) //
              : (x < 1000000000000000L) // 14-15 vs. 16-19
                  ? ((x < 100000000000000L) ? 14 : 15) // 14-15
                  : (x < 100000000000000000L) // 16-17 vs. 18-19
                      ? ((x < 10000000000000000L) ? 16 : 17) // 16-17
                      : ((x < 1000000000000000000L) ? 18 : 19); // 18-19
    }