code: public boolean crosses(Span s) {
      int sstart = s.getStart();
      //either s's start is in this or this' start is in s
      return(!this.contains(s) && !s.contains(this) && 
  	   (getStart() <= sstart && sstart < getEnd() ||
  	   sstart <= getStart() && getStart() < s.getEnd()));
    }
docs: Returns true is the specified span crosses this span.
  @param s The span to compare with this span.
  @return true is the specified span overlaps this span and contains a non-overlapping section; false otherwise.