|
@@ -52,6 +52,8 @@ import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Stack;
|
|
|
+import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Component
|
|
@@ -595,4 +597,95 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
return dq;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ String s = "(1.1/1.2/1.3)任一+(1.4/1.17/1.18)任六+(2.1/2.2/2.3/2.4/2.5/2.6/2.7/2.8/2.9/2.11)任一";
|
|
|
+ String s1 = "111任一任二22";
|
|
|
+ System.out.println(splitCode(s));
|
|
|
+
|
|
|
+
|
|
|
+// System.out.println(isMatch(s));
|
|
|
+
|
|
|
+ // 待解决 任前面一定是),括号内容不能为空
|
|
|
+ /**
|
|
|
+ * 1、括号成对校验
|
|
|
+ * 2、是否出现重复分隔符
|
|
|
+ * 3、获取编码并校验
|
|
|
+ */
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static boolean verifyRen(String s) {
|
|
|
+ int i = s.indexOf("任");
|
|
|
+ while(-1 != i) {
|
|
|
+ if(i == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取编码
|
|
|
+ * @param s
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<String> splitCode(String s) {
|
|
|
+ List<String> res = new ArrayList<>();
|
|
|
+ String resg1 = "\\(|/|\\)|任一|任二|任三|任四|任五|任六|任七|任八|任九|任十|\\+";
|
|
|
+ String[] arr = s.split(resg1);
|
|
|
+ for(String str : arr) {
|
|
|
+ if (StringUtil.isNotEmpty(str)) {
|
|
|
+ res.add(str);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 括号是否成对匹配
|
|
|
+ * @param s
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static boolean isMatch(String s) {
|
|
|
+ Stack<Character> sc=new Stack<Character>();
|
|
|
+ char[] c=s.toCharArray();
|
|
|
+ for (int i = 0; i < c.length; i++) {
|
|
|
+ if (c[i]=='(') {
|
|
|
+ sc.push(c[i]);
|
|
|
+ }
|
|
|
+ else if (c[i]==')') {
|
|
|
+ if(sc.isEmpty()){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if (sc.peek()=='(') {
|
|
|
+ sc.pop();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (sc.empty()) {
|
|
|
+ return true;
|
|
|
+ }else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否出现重复分隔符
|
|
|
+ * @param s
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static boolean isRepeat(String s) {
|
|
|
+ String regex = ".*((\\()|(\\))|(\\+)|(//)|(任一)|(任二)|(任三)|(任四)|(任五)|(任六)|(任七)|(任八)|(任九)|(任十)){2,}.*";
|
|
|
+ return Pattern.matches(regex, s);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|