如何编写String flattener?

时间:2015-08-18 02:53:25

标签: java string

我正在尝试用Java编写一个字符串flattener,它将以下模式转换为指定的表单。

{ x:1, y:1, z:{ a:1, b:2 } }

变平

{ x:1, y:1, z.a:1, z.b:2 }

我计划使用堆栈在{}之间添加内容,并在解析}后弹回内容,但这会变得复杂。在Java中还有其他更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

使用堆栈并不复杂。伪代码:

read beginObject;
while(peekAtNext != endObject && !stack.isEmpty) {
  read name;
  read value;
  if(value == beginObject) {
    push name;
  } else if (value == endObject) {
    pop name;
  } else {
    write(fullStack + "." + name);
    write(".");
    write(value);
  }
}
read endAbject;

除此之外,没有任何方法可以做到这一点。