code: @Override
      public boolean matchesIndexValue(int v) {
          /* The index value v, in the range [0,255], is contained in this set if
           * it is contained in any pair of this set.  Pairs either have the high
           * bytes equal, or unequal.  If the high bytes are equal, then we have
           * aaxx..aayy, where aa is the high byte.  Then v is contained if xx <=
           * v <= yy.  If the high bytes are unequal we have aaxx..bbyy, bb>aa.
           * Then v is contained if xx <= v || v <= yy.  (This is identical to the
           * time zone month containment logic.)
           */
          for (int i=0; i<getRangeCount(); ++i) {
              int low = getRangeStart(i);
              int high = getRangeEnd(i);
              if ((low & ~0xFF) == (high & ~0xFF)) {
                  if ((low & 0xFF) <= v && v <= (high & 0xFF)) {
                      return true;
                  }
              } else if ((low & 0xFF) <= v || v <= (high & 0xFF)) {
                  return true;
              }
          }
          if (strings.size() != 0) {
              for (String s : strings) {
                  //if (s.length() == 0) {
                  //    // Empty strings match everything
                  //    return true;
                  //}
                  // assert(s.length() != 0); // We enforce this elsewhere
                  int c = UTF16.charAt(s, 0);
                  if ((c & 0xFF) == v) {
                      return true;
                  }
              }
          }
          return false;
      }
docs: Implementation of UnicodeMatcher API.  Returns <tt>true</tt> if
  this set contains any character whose low byte is the given
  value.  This is used by <tt>RuleBasedTransliterator</tt> for
  indexing.