code: public void remove(CharRange cond)
      {
          if (!set.isEmpty())
          {
              List<CharRange> remlist = new ArrayList<CharRange>();
              List<CharRange> addlist = new ArrayList<CharRange>();
              for (CharRange r : set)
              {
                  if (r.intersect(cond))
                  {
                      remlist.add(r);
                      int from = r.getFrom();
                      int to = cond.getFrom();
                      if (from != to)
                      {
                          addlist.add(new CharRange(from, to));
                      }
                      from = cond.getTo();
                      to = r.getTo();
                      if (from != to)
                      {
                          addlist.add(new CharRange(from, to));
                      }
                  }
              }
              set.removeAll(remlist);
              set.addAll(addlist);
          }
      }
docs: Removes a CharRange from RangeSet. Example: Removing c-d from a-z results a-be-z
  @param cond