Skip to content

Commit 8a9e6d3

Browse files
committed
修改split 遇到()问题
1 parent bfd2fa7 commit 8a9e6d3

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

core/src/main/java/com/dtstack/flink/sql/util/DtStringUtil.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,16 @@ public static List<String> splitIgnoreQuota(String str, char delimiter){
5757
List<String> tokensList = new ArrayList<>();
5858
boolean inQuotes = false;
5959
boolean inSingleQuotes = false;
60+
int bracketLeftNum = 0;
6061
StringBuilder b = new StringBuilder();
6162
for (char c : str.toCharArray()) {
6263
if(c == delimiter){
6364
if (inQuotes) {
6465
b.append(c);
6566
} else if(inSingleQuotes){
6667
b.append(c);
68+
} else if(bracketLeftNum > 0){
69+
b.append(c);
6770
}else {
6871
tokensList.add(b.toString());
6972
b = new StringBuilder();
@@ -74,6 +77,12 @@ public static List<String> splitIgnoreQuota(String str, char delimiter){
7477
}else if(c == '\''){
7578
inSingleQuotes = !inSingleQuotes;
7679
b.append(c);
80+
}else if(c == '('){
81+
bracketLeftNum++;
82+
b.append(c);
83+
}else if(c == ')'){
84+
bracketLeftNum--;
85+
b.append(c);
7786
}else{
7887
b.append(c);
7988
}

0 commit comments

Comments
 (0)