static int binFind(String[] strArray, String in) {
		int low = 0, high = strArray.length -1;
		while(low <= high){
			int mid = (low + high ) >> 1; //avoid overflow
			int rmd = mid;
			//skip empty string
			while ( rmd < strArray.length && "".equals(strArray[rmd])  ) rmd ++; 
			if(rmd == strArray.length){
				high = mid -1;
				continue;
			}
			int cmp = in.compareTo(strArray[rmd]);
			if(cmp > 0){
				low = rmd + 1;
			}else if(cmp < 0){ //skip empty string next time
				high = mid -1;
			}else {
				return rmd;
			}
		}
		return -1;
	}