Skip to content

Commit 0f619d8

Browse files
committed
midify DtStringUtil splitIgnoreQuota
1 parent 71b0dd6 commit 0f619d8

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,13 @@ public static List<String> splitIgnoreQuota(String str, char delimiter){
5959
boolean inSingleQuotes = false;
6060
int bracketLeftNum = 0;
6161
StringBuilder b = new StringBuilder();
62-
for (char c : str.toCharArray()) {
62+
char[] chars = str.toCharArray();
63+
int idx = 0;
64+
for (char c : chars) {
65+
char flag = 0;
66+
if (idx > 0) {
67+
flag = chars[idx - 1];
68+
}
6369
if(c == delimiter){
6470
if (inQuotes) {
6571
b.append(c);
@@ -71,10 +77,10 @@ public static List<String> splitIgnoreQuota(String str, char delimiter){
7177
tokensList.add(b.toString());
7278
b = new StringBuilder();
7379
}
74-
}else if(c == '\"'){
80+
}else if(c == '\"' && '\\'!=flag && !inSingleQuotes){
7581
inQuotes = !inQuotes;
7682
b.append(c);
77-
}else if(c == '\''){
83+
}else if(c == '\'' && '\\'!=flag && !inQuotes){
7884
inSingleQuotes = !inSingleQuotes;
7985
b.append(c);
8086
}else if(c == '('){
@@ -86,6 +92,7 @@ public static List<String> splitIgnoreQuota(String str, char delimiter){
8692
}else{
8793
b.append(c);
8894
}
95+
idx++;
8996
}
9097

9198
tokensList.add(b.toString());

0 commit comments

Comments
 (0)