我有一个嵌套的逗号字符串,例如
def f(array:Array[Int], key:Int) =
(key, array.withFilter(_._1==key).map(_._2).toList)
我想用逗号分割字符串,直到第1级。我期待的输出是
[1,2,[],[a,b],[ab,bc,cd],[1,2,[3,4],[5,6],7]]
我尝试使用regexp在Java中拆分字符串,但无法获得正确的输出。 我们怎么能实现这个目标呢?
虽然这个问题 Java: splitting a comma-separated string but ignoring commas in quotes
很有用,但我有单独的开始和结束嵌套标记([,]),所以我无法直接使用该解决方案
答案 0 :(得分:5)
试试这个。
for(i in 1:10) lh <- add(lh,i)
结果
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);