|
@@ -36,10 +36,70 @@ public class ValueUtil {
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 判断条件 处理字母+数字的数据 去掉字母
|
|
|
|
|
+ * @param left
|
|
|
|
|
+ * @param right
|
|
|
|
|
+ * @param letterNumber
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public static Object[] obtain(Object left, Object right, boolean letterNumber) {
|
|
|
|
|
+ if (StringUtils.isNotEmpty(left, right)) {
|
|
|
|
|
+ if (left instanceof List) {
|
|
|
|
|
+ List<Object> tmp = CustomFunction.obj2ListNe(left);
|
|
|
|
|
+ if (tmp.size() == 0) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(tmp.size() == 1){
|
|
|
|
|
+ if(StringUtils.isNumber(tmp.get(0).toString())){
|
|
|
|
|
+ left = Double.valueOf(tmp.get(0).toString());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ left = tmp.get(0);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }else{
|
|
|
|
|
+ left = sum(tmp);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (right instanceof List) {
|
|
|
|
|
+ List<Object> tmp = CustomFunction.obj2ListNe(right);
|
|
|
|
|
+ if (tmp.size() == 0) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(tmp.size() == 1){
|
|
|
|
|
+ if(StringUtils.isNumber(tmp.get(0).toString())){
|
|
|
|
|
+ right = Double.valueOf(tmp.get(0).toString());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ right = tmp.get(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ right = sum(tmp);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotEmpty(left) && StringUtils.isNotEmpty(right)) {
|
|
|
|
|
+ if (letterNumber) {
|
|
|
|
|
+ left = isLetterNumber(left);
|
|
|
|
|
+ right = isLetterNumber(right);
|
|
|
|
|
+ }
|
|
|
|
|
+ return new Object[]{left, right};
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
public static Object sum(List<Object> list) {
|
|
public static Object sum(List<Object> list) {
|
|
|
if (ListUtils.isNotEmpty(list)) {
|
|
if (ListUtils.isNotEmpty(list)) {
|
|
|
return (float) list.stream().filter(StringUtils::isNumber).map(StringUtils::handleNull).mapToDouble(Double::parseDouble).sum();
|
|
return (float) list.stream().filter(StringUtils::isNumber).map(StringUtils::handleNull).mapToDouble(Double::parseDouble).sum();
|
|
|
}
|
|
}
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public static Object isLetterNumber(Object str){
|
|
|
|
|
+ // 检查是否是字母数字组合(必须同时包含字母和数字,且只包含字母数字)
|
|
|
|
|
+ if (str != null && str.toString().matches("^(?=.*[a-zA-Z])(?=.*\\d)[a-zA-Z\\d]+$")) {
|
|
|
|
|
+ // 提取所有数字
|
|
|
|
|
+ return Double.valueOf(str.toString().replaceAll("[^0-9]", ""));
|
|
|
|
|
+ }
|
|
|
|
|
+ return str;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|