是否可以按以下条件拆分字符串?
- 按逗号(即逗号)拆分
- 在每个元素上,忽略第一个“和最后一个”之间的逗号
- 在每个元素上,忽略第一个(和最后一个)之间的逗号
例如:
String source = "to_char(DATE, 'YYYY,MM,DD'), 'I am sad :(', to_char(DATE, ('YYYY(MM,DD)')), to_char(DATE, ('YYYY,MM,DD)')), to_char(DATE, ('YYYY(MM,DD')), NAME, to_char(DATE, '(YYYY)MM,DD'), CITY || ', (UK)', CITY || ', US''s CITY', CITY || ', UK'";
String[] expected = new String[]{
"to_char(DATE, 'YYYY,MM,DD')",
"'I am sad :('",
"to_char(DATE, ('YYYY(MM,DD)'))", // brackets within quotes within brackets
"to_char(DATE, ('YYYY,MM,DD)'))", // missing open bracket in quotes
"to_char(DATE, ('YYYY(MM,DD'))", // missing close bracket in quotes
"NAME",
"to_char(DATE, '(YYYY)MM,DD')",
"CITY || ', (UK)'",
"CITY || ', US''s CITY'", // escape a single quote in quotes
"CITY || ', UK'"
};
String[] result = splitElements(source);
assert expected.equals(result);
前两个要点可以通过在存在转义引号的情况下按逗号分割来实现。
在处理SQL时,这将非常有用。例如,分割项目,附加,插入,添加项目等。
提前感谢您。