|
@@ -643,7 +643,7 @@ public class CoreUtil {
|
|
return 20.0;
|
|
return 20.0;
|
|
}
|
|
}
|
|
// 全是整形数字,当成年龄处理
|
|
// 全是整形数字,当成年龄处理
|
|
- if (CatalogueUtil.numbersOnly(ageStr)) {
|
|
|
|
|
|
+ if (numbersOnly(ageStr)) {
|
|
return Double.parseDouble(ageStr);
|
|
return Double.parseDouble(ageStr);
|
|
}
|
|
}
|
|
// 20日
|
|
// 20日
|
|
@@ -654,8 +654,16 @@ public class CoreUtil {
|
|
if (ageStr.endsWith("岁")) {
|
|
if (ageStr.endsWith("岁")) {
|
|
return Double.parseDouble(ageStr.substring(0, ageStr.length() - 1));
|
|
return Double.parseDouble(ageStr.substring(0, ageStr.length() - 1));
|
|
}
|
|
}
|
|
|
|
+ // 3岁7个月
|
|
|
|
+ if (ageSuiYue(ageStr)) {
|
|
|
|
+ String[] ageArr = new String[2];
|
|
|
|
+ int indexSui = ageStr.indexOf("岁");
|
|
|
|
+ ageArr[0] = ageStr.substring(0, indexSui);
|
|
|
|
+ ageArr[1] = ageStr.substring(indexSui + 1,ageStr.indexOf("个月"));
|
|
|
|
+ return Double.parseDouble(ageArr[0]) + getHalfUp(Double.parseDouble(ageArr[1]) / 12);
|
|
|
|
+ }
|
|
// 1.08月 | .11月 | 3月
|
|
// 1.08月 | .11月 | 3月
|
|
- if (ageStr.endsWith("月")) {
|
|
|
|
|
|
+ if (ageYue(ageStr)) {
|
|
String noUnit = ageStr.substring(0, ageStr.length() - 1);
|
|
String noUnit = ageStr.substring(0, ageStr.length() - 1);
|
|
String[] ageArr = new String[2];
|
|
String[] ageArr = new String[2];
|
|
String[] splitArr = noUnit.split("\\.");
|
|
String[] splitArr = noUnit.split("\\.");
|
|
@@ -681,6 +689,39 @@ public class CoreUtil {
|
|
return 20.0;
|
|
return 20.0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 判断字符串是否 仅 包含数字
|
|
|
|
+ *
|
|
|
|
+ * @param str
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static boolean numbersOnly(String str) {
|
|
|
|
+ String regex = "^[0-9]+$";
|
|
|
|
+ return str.matches(regex);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 判断年龄字符串:xx月
|
|
|
|
+ *
|
|
|
|
+ * @param str
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static boolean ageYue(String str) {
|
|
|
|
+ String regex = "^[0-9]*[\\.]*[0-9]{1,2}月$";
|
|
|
|
+ return str.matches(regex);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 判断年龄字符串:3岁7个月
|
|
|
|
+ *
|
|
|
|
+ * @param str
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static boolean ageSuiYue(String str) {
|
|
|
|
+ String regex = "^[0-9]{1,3}岁[0-9]{1,2}个月$";
|
|
|
|
+ return str.matches(regex);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 四舍五入保留2位小数
|
|
* 四舍五入保留2位小数
|
|
*
|
|
*
|
|
@@ -704,4 +745,9 @@ public class CoreUtil {
|
|
}
|
|
}
|
|
return str;
|
|
return str;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public static void main(String[] args) {
|
|
|
|
+ String ageStr = "3月";
|
|
|
|
+ System.out.println(convertAge(ageStr));
|
|
|
|
+ }
|
|
}
|
|
}
|