code: private static boolean isLDHChar(int ch){
          // high runner case
          if(ch>0x007A){
              return false;
          }
          //[\\u002D \\u0030-\\u0039 \\u0041-\\u005A \\u0061-\\u007A]
          if( (ch==0x002D) || 
              (0x0030 <= ch && ch <= 0x0039) ||
              (0x0041 <= ch && ch <= 0x005A) ||
              (0x0061 <= ch && ch <= 0x007A)
            ){
              return true;
          }
          return false;
      }
docs: /*
  private static int getSeparatorIndex(UCharacterIterator iter){
  int currentIndex = iter.getIndex();
  int separatorIndex = 0;
  int ch;
  while((ch=iter.next())!= UCharacterIterator.DONE){
  if(isLabelSeparator(ch)){
  separatorIndex = iter.getIndex();
  iter.setIndex(currentIndex);
  return separatorIndex;
  }
  }
  reset index
  iter.setIndex(currentIndex);
  we have not found the separator just return the length
  
  }