Gun*_*gam 1 java regex arrays split arraylist
我有一个嵌套的逗号字符串,如
[1,2,[],[a,b],[ab,bc,cd],[1,2,[3,4],[5,6],7]]
Run Code Online (Sandbox Code Playgroud)
我想用逗号分割字符串,直到第1级.我期待的输出是
1
2
[]
[a,b]
[ab,bc,cd]
[1,2,[3,4],[5,6],7]
Run Code Online (Sandbox Code Playgroud)
我尝试使用regexp在Java中拆分字符串但无法获得正确的输出.我们怎么能实现这个目标?
虽然这个问题 Java:拆分逗号分隔的字符串但忽略引号中的逗号
是有帮助的,但我有单独的开始和结束嵌套标记([,]),所以我无法直接使用该解决方案
试试这个.
String s = "[1,2,[],[a,b],[ab,bc,cd],[1,2,[3,4],[5,6],7]]";
StringBuilder sb = new StringBuilder();
int nest = 0;
for (int i = 1; i < s.length() - 1; ++i) {
char ch = s.charAt(i);
switch (ch) {
case ',':
if (nest == 0) {
System.out.println(sb);
sb.setLength(0);
continue;
}
break;
case '[': ++nest; break;
case ']': --nest; break;
}
sb.append(ch);
}
System.out.println(sb);
Run Code Online (Sandbox Code Playgroud)
结果
1
2
[]
[a,b]
[ab,bc,cd]
[1,2,[3,4],[5,6],7]
Run Code Online (Sandbox Code Playgroud)