From ab8b6102e6036ca4837adf36faa254b0dd46ee36 Mon Sep 17 00:00:00 2001 From: "bryan.zhang" Date: Wed, 29 Nov 2017 14:35:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=9A=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 +++ .../liteflow/parser/FlowParser.java | 4 ++ .../liteflow/parser/TempConvert.java | 64 +++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 src/main/java/com/thebeastshop/liteflow/parser/TempConvert.java diff --git a/pom.xml b/pom.xml index 93f79b818..27c0b52ba 100644 --- a/pom.xml +++ b/pom.xml @@ -97,6 +97,14 @@ ${java.version} + + org.apache.maven.plugins + maven-surefire-plugin + 2.18.1 + + true + + \ No newline at end of file diff --git a/src/main/java/com/thebeastshop/liteflow/parser/FlowParser.java b/src/main/java/com/thebeastshop/liteflow/parser/FlowParser.java index 850fe66f3..3fc4fb187 100644 --- a/src/main/java/com/thebeastshop/liteflow/parser/FlowParser.java +++ b/src/main/java/com/thebeastshop/liteflow/parser/FlowParser.java @@ -182,4 +182,8 @@ public class FlowParser { } return regexEntity; } + + public static void main(String[] args) { + System.out.println(parseNodeStr("aaaa(bbb(xxxx|yyyy)|yyyy)")); + } } diff --git a/src/main/java/com/thebeastshop/liteflow/parser/TempConvert.java b/src/main/java/com/thebeastshop/liteflow/parser/TempConvert.java new file mode 100644 index 000000000..b8f4818a6 --- /dev/null +++ b/src/main/java/com/thebeastshop/liteflow/parser/TempConvert.java @@ -0,0 +1,64 @@ +package com.thebeastshop.liteflow.parser; + +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 类型转换 + * @author gongjun[jun.gong@thebeastshop.com] + * @since 2017-11-22 15:13 + */ +@Component +public class TempConvert { + + + + private static List match(String input) { + List list = new ArrayList(); + Stack stack = new Stack<>(); + StringBuffer buffer = new StringBuffer(); + for (int i = 0; i < input.length(); i++) { + char c = input.charAt(i); + if (c == '(') { + stack.push(c); + if (stack.size() == 1 && buffer.length() > 0) { + list.add(buffer.toString()); + buffer = new StringBuffer(); + }else { + buffer.append(c); + } + }else if (c == ')') { + if (stack.size() > 0) { + stack.pop(); + if (stack.size() == 0) { + if (buffer.length() > 0) { + list.add(buffer.toString()); + buffer = new StringBuffer(); + } + }else { + buffer.append(c); + } + } + }else { + buffer.append(c); + } + } + if (buffer.length() > 0) { + list.add(buffer.toString()); + } + return list; + } + + + public static void main(String[] args) { + List list = new ArrayList(); + String input = "aaaa(bbb(xxxxx|yyyy))"; + list = match(input); + System.out.println(list); + } +}