gpt4 book ai didi

Java 用嵌套逗号拆分字符串

转载 作者:行者123 更新时间:2023-11-29 07:32:37 26 4
gpt4 key购买 nike

我有一个嵌套的逗号字符串,例如

[1,2,[],[a,b],[ab,bc,cd],[1,2,[3,4],[5,6],7]]

我只想用逗号将字符串拆分到第一级。我期待的输出是

1
2
[]
[a,b]
[ab,bc,cd]
[1,2,[3,4],[5,6],7]

我尝试使用正则表达式在 Java 中拆分字符串,但无法获得正确的输出。我们怎样才能做到这一点?

虽然这个问题 Java: splitting a comma-separated string but ignoring commas in quotes

很有帮助,但我有单独的开始和结束嵌套标记([,]),所以我不能直接使用该解决方案

最佳答案

试试这个。

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);

结果

1
2
[]
[a,b]
[ab,bc,cd]
[1,2,[3,4],[5,6],7]

关于Java 用嵌套逗号拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39939602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com