记录一个当比较符与比较值合并为字符串时的通用比较方法
public class CompareUtil {
public static boolean compare(Integer s, String str) {
if (s == null || str == null || str.length() == 0) {
return false;
} else {
StringBuffer cs = new StringBuffer();
StringBuffer start = new StringBuffer();
StringBuffer end = new StringBuffer();
format(str.toCharArray(), cs, start, end);
if (cs.length() == 0 || end.length() == 0) {
return false;
} else if (start.length() == 0) {
return compare(s, cs.toString(), Integer.parseInt(end.toString()));
} else {
return compare(s, cs.toString(), Integer.parseInt(start.toString()), Integer.parseInt(end.toString()));
}
}
}
static boolean compare(int s, String str, int n) {
switch (str) {
case ">=":
return s >= n;
case "<=":
return s <= n;
case "<>":
case "!=":
return s != n;
case "=":
case "==":
return s == n;
case "<":
return s < n;
case ">":
return s > n;
default:
return false;
}
}
static boolean compare(int s, String str, int n, int m) {
switch (str) {
case ">=<=":
return s >= n || s <= m;
case ">=<":
return s >= n || s < m;
case "><=":
return s > n || s <= m;
case "><":
return s > n || s < m;
case "<=>=":
return s <= n || s >= m;
case "<=>":
return s <= n || s < m;
case "<>=":
return s < n || s >= m;
case "<>":
return s < n || s > m;
default:
return false;
}
}
private static void format(char[] chars, StringBuffer cs, StringBuffer start, StringBuffer end) {
for (char s : chars) {
if ((byte) s < 58 && (byte) s > 48) {
if (cs.length() == 0) {
start.append(s);
} else {
end.append(s);
}
} else if (end.length() == 0) {
cs.append(s);
} else {
cs.setLength(0);
start.setLength(0);
end.setLength(0);
break;
}
}
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-51187.html