@@ -73,43 +73,72 @@ public static String[] parseLines(String txt) {
73
73
return StringUtils .isBlank (txt ) ? EMPTY_STR_ARRAY : txt .split ("\\ r?\\ n" );
74
74
}
75
75
76
- public static String [] parseDsv (String csv , String delimiter ) {
77
- if (StringUtils .isBlank (delimiter ) || "," .equals (delimiter )) {
78
- return parseCsv (csv );
76
+ public static String [] parseDsv (String dsv , String delimiter ) {
77
+ return parseDsv (dsv , delimiter , true );
78
+ }
79
+
80
+ public static String [] parseDsv (String dsv , String delimiter , boolean trim ) {
81
+ if (StringUtils .isBlank (dsv )) {
82
+ return EMPTY_STR_ARRAY ;
79
83
}
80
- return StringUtils .isBlank (csv ) ? EMPTY_STR_ARRAY : csv .trim ().split ("\\ s*" + delimiter + "\\ s*" );
84
+
85
+ if (trim ) {
86
+ // Replace all consecutive spaces or delimiter characters with a single delimiter character
87
+ dsv = dsv .trim ().replaceAll ("\\ s*" + delimiter + "\\ s*" , delimiter );
88
+ }
89
+ // Use StringUtils.split, which does not use regular expressions
90
+ return StringUtils .split (dsv , delimiter );
81
91
}
82
92
83
93
public static String [] parsePsv (String psv ) {
94
+ return parsePsv (psv , true );
95
+ }
96
+
97
+ public static String [] parsePsv (String psv , boolean trim ) {
84
98
//return StringUtils.isBlank(csv) ? EMPTY_STR_ARRAY : csv.trim().split(REGEX_PSV);
85
99
if (StringUtils .isBlank (psv )) {
86
100
return EMPTY_STR_ARRAY ;
87
101
}
88
- // Replace all consecutive spaces or target characters with a single target character
89
- //String cleanedPsv = psv.trim().replaceAll("[\\s|]+", "|");
102
+ if (trim ) {
103
+ // Replace all consecutive spaces or delimiter characters with a single delimiter character
104
+ psv = psv .trim ().replaceAll ("[\\ s|]+" , "|" );
105
+ }
90
106
// Use StringUtils.split, which does not use regular expressions
91
107
return StringUtils .split (psv , '|' );
92
108
}
93
109
94
110
public static String [] parseCsv (String csv ) {
111
+ return parseCsv (csv , true );
112
+ }
113
+
114
+ public static String [] parseCsv (String csv , boolean trim ) {
95
115
//return StringUtils.isBlank(csv) ? EMPTY_STR_ARRAY : csv.trim().split(REGEX_CSV);
96
- return StringUtils .isBlank (csv ) ? EMPTY_STR_ARRAY : StringUtils .split (csv );
116
+ if (StringUtils .isBlank (csv )) {
117
+ return EMPTY_STR_ARRAY ;
118
+ }
119
+ //return StringUtils.isBlank(csv) ? EMPTY_STR_ARRAY : StringUtils.split(csv);
120
+ if (trim ) {
121
+ // Replace all consecutive spaces or delimiter characters with a single delimiter character
122
+ csv = csv .trim ().replaceAll ("\\ s*,\\ s*" , "," );
123
+ }
124
+ // Use StringUtils.split, which does not use regular expressions
125
+ return StringUtils .split (csv , ',' );
97
126
}
98
127
99
128
public static String [] parseURL (String url ) {
129
+ return parseURL (url , true );
130
+ }
131
+
132
+ public static String [] parseURL (String url , boolean trim ) {
100
133
//return StringUtils.isBlank(url) ? EMPTY_STR_ARRAY : url.trim().split(REGEX_URL);
101
134
if (StringUtils .isBlank (url )) {
102
135
return EMPTY_STR_ARRAY ;
103
136
}
104
- // Replace all consecutive spaces or target characters with a single target character
105
- //String cleanedUrl = url.trim().replaceAll("\\s*/\\s*", "/");
106
- return StringUtils .split (url , "/ " );
107
- }
108
-
109
- public static String [] parseURL (String url , boolean trim ) {
110
- return StringUtils .isBlank (url )
111
- ? EMPTY_STR_ARRAY
112
- : trim ? url .trim ().split (REGEX_URL ) : url .split (REGEX_URL );
137
+ if (trim ) {
138
+ // Replace all consecutive spaces or delimiter characters with a single delimiter character
139
+ url = url .trim ().replaceAll ("\\ s*/\\ s*" , "/" );
140
+ }
141
+ return StringUtils .split (url , '/' );
113
142
}
114
143
115
144
public static String parseUrlQueryParam (String url , Map <String , String > queryParam ) {
@@ -253,24 +282,28 @@ public static String b2n(String s) {
253
282
* BindAddresses = 192.168.1.10:8445, 127.0.0.1:8446, 0.0.0.0:8447
254
283
*/
255
284
public static Map <String , Integer > parseBindingAddresss (String bindAddresses ) {
256
- //int[] ports = Arrays.stream(portsStr).mapToInt(Integer::parseInt).toArray();
257
- Map <String , Integer > ret = new HashMap <>();
258
- String [] addrs = parseCsv (bindAddresses );
259
- for (String addr : addrs ) {
260
- //String[] ap = addr.trim().split(REGEX_BINDING_MAP);
261
- String [] ap = StringUtils .split (addr , ":" );
262
- ret .put (ap [0 ], Integer .parseInt (ap [1 ]));
263
- }
264
- return ret ;
285
+ Map <String , String > stringMap = parseMap (bindAddresses , true );
286
+ Map <String , Integer > integerMap = stringMap .entrySet ().stream ()
287
+ .collect (Collectors .toMap (
288
+ Map .Entry ::getKey , // key remains the same
289
+ entry -> Integer .valueOf (entry .getValue ()) // convert value to Integer
290
+ ));
291
+ return integerMap ;
265
292
}
266
293
267
294
public static Map <String , String > parseMap (String mapCVS ) {
268
- //int[] ports = Arrays.stream(portsStr).mapToInt(Integer::parseInt).toArray();
295
+ return parseMap (mapCVS , true );
296
+ }
297
+
298
+ public static Map <String , String > parseMap (String mapCVS , boolean trim ) {
269
299
Map <String , String > ret = new HashMap <>();
270
- String [] mapKeyValues = parseCsv (mapCVS );
300
+ String [] mapKeyValues = parseCsv (mapCVS , true );
271
301
for (String mapKeyValue : mapKeyValues ) {
272
302
//String[] ap = mapKeyValue.trim().split(REGEX_BINDING_MAP);
273
- String [] ap = StringUtils .split (mapKeyValue , ":" );
303
+ if (trim ) {
304
+ mapKeyValue = mapKeyValue .trim ().replaceAll ("\\ s*:\\ s*" , ":" );
305
+ }
306
+ String [] ap = StringUtils .split (mapKeyValue , ':' );
274
307
ret .put (ap [0 ], ap [1 ]);
275
308
}
276
309
return ret ;
0 commit comments