java - 如何编写字符串扁平化器?

标签 java string

我正在尝试用 Java 编写一个字符串扁平化器,它将以下模式转换为指定的形式。

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

变平为

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

我打算用一个栈把{}之间的内容加起来,解析完之后把内容pop回来,虽然,这变得复杂。在 Java 中还有其他更简单的方法吗?

最佳答案

使用堆栈一点也不复杂。伪代码:

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;

没有比这简单得多的方法来做到这一点。

关于java - 如何编写字符串扁平化器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32062774/

相关文章:

Java 构造函数 - 继承层次结构中的执行顺序

java - 查询 Google 的目录 API - 错误 : 400 Bad Request

python - 如何选择长度可变但开头和结尾固定的字符串?

java - Android - 将 Arch 转换为 Decimal

string - 如何在 PowerShell 中从此数组中获取唯一值?

c - 将字符串拆分为C中的单词数组

java - 如何模拟更新时的异常来测试spring事务管理?

java - Undertow如何做Non-blocking IO?

java - 如何在注释中使用元素实现 idbag?

带空格的 C++ system() 命令路径