【问题标题】:Converting a string representation of an array into an array in Java将数组的字符串表示形式转换为Java中的数组
【发布时间】:2012-10-17 11:40:10
【问题描述】:

我在 Java 中有一个这样的字符串:

String s = "{{\"2D\", \"array\"}, {\"represented\", \"in a string\"}}"

如何将其转换为实际数组?像这样:

String[][] a = {{"2D", "array"}, {"represented", "in a string"}}

(我正在寻找的解决方案有点像python的eval()

【问题讨论】:

  • 也许您可以将其视为 JSON 输入。看看这个code.google.com/p/google-gson也许有办法解析字符串对象。
  • @broncoAbierto:它不是 JSON 格式,JSON 中的数组使用 [...],而不是 {...}。如果它真的如图所示简单,当然 OP 可以先做一个replaceAll 来改变它们,但它实际上可能不像所示的那么简单。
  • 真正的问题是,您遇到什么情况需要您这样做?
  • ...到目前为止,您尝试了哪些不起作用的方法?令我惊讶的是,一个根本没有研究工作的问题得到了如此多的支持。
  • 你的例子没有意义。您声明一个String[] 并使用String[][] 对其进行初始化。如果事先不知道数组的维数,这根本不是一个简单的问题。

标签: java arrays string type-conversion


【解决方案1】:

我强烈建议您使用支持 json 的库来解析您的 String。但是,只是为了好玩,请看一下下面的代码,它只使用String 方法就可以完成您需要的事情:

String s = "{{\"2D\", \"array\"}, {\"represented\", \"in a string\"}}";
s = s.replace("{", "");
String[] s0 = s.split("},\\s");
int length = s0.length;
String[][] a = new String[length][];
for (int i = 0; i < length; i++) {
    a[i] = s0[i].replace("}", "").split(",\\s");
}

【讨论】:

  • 如果字符串中出现任何{},则会失败。
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 2016-12-17
  • 2016-06-15
相关资源
最近更新 更多