将Java中的字符串数组表示转换为实际数组

5

我有一个Java字符串,如下:

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

我该如何将它转换成实际的数组?就像这样:
String[][] a = {{"2D", "array"}, {"represented", "in a string"}}

我需要的是类似于Python中的eval()函数的解决方案。

3
真正的问题是,你遇到了什么情况需要你这样做? - 9ee1
3
你到目前为止尝试了什么,但却没有起作用?我很惊讶这样一个没有表现出任何研究努力的问题会得到这么多赞。 - Duncan Jones
1
你的例子毫无意义。你声明了一个 String[] 并用 String[][] 进行初始化。如果你事先不知道数组的维度,这就不是一个简单的问题。 - Marko Topolnik
@agarhy 我足够聪明,建立了一个能够处理 String[][] 的程序。然而,在完成示例程序后,我意识到当我使用真实数据时,它不会以那种格式呈现。与其重新构建整个程序,我想 Java 可能有一个类似于 Python 的 eval() 的等价物。 - ACarter
我同意。你是从哪里获取数据的?让提供数据的程序以易于阅读的格式输出数据,而不是你试图以困难的格式读取它,这可能更容易些。 - 9ee1
显示剩余6条评论
1个回答

3

我强烈建议您使用支持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");
}

6
这将失败的情况是字符串中出现任何 {} - Marko Topolnik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接