public static int compare(String left,boolean right){
  if (Decision.isBoolean(left))   return compare(Caster.toBooleanValue(left,false),right);
  if (Decision.isNumber(left))   return compare(Caster.toDoubleValue(left,Double.NaN),right ? 1d : 0d);
  if (left.length() == 0)   return -1;
  char leftFirst=left.charAt(0);
  if (leftFirst >= '0' && leftFirst <= '9')   return left.compareToIgnoreCase(Caster.toString(right ? 1D : 0D));
  return leftFirst - '0';
}

public static int compare ( String left , boolean right ) { if ( Decision . isBoolean ( left ) ) return compare ( Caster . toBooleanValue ( left , false ) , right ) ; if ( Decision . isNumber ( left ) ) return compare ( Caster . toDoubleValue ( left , Double . NaN ) , right ? 1d : 0d ) ; if ( left . length ( ) == 0 ) return - 1 ; char leftFirst = left . charAt ( 0 ) ; if ( leftFirst >= '0' && leftFirst <= '9' ) return left . compareToIgnoreCase ( Caster . toString ( right ? 1D : 0D ) ) ; return leftFirst - '0' ; }
compares a string with a boolean
