您可以replaceAll
和split
做到这一点很容易,像这样:
public static void main(String[] args) throws Exception {
final String input = "{{\"12\",\"13\",\"2\",\"5\"},{\"14\",\"14\",\"1\",\"4\"},{\"36\",\"30\",\"1\",\"9\"}}";
final String[] rows = input.replaceAll("^\\{\\{|}}$", "").split("},\\{");
final String[][] transformed = new String[rows.length][];
for (int i = 0; i < rows.length; ++i) {
final String[] columns = rows[i].replaceAll("^\"|\"$", "").split("\",\"");
transformed[i] = new String[columns.length];
System.arraycopy(columns, 0, transformed[i], 0, columns.length);
}
System.out.println(Arrays.deepToString(transformed));
}
输出:
[[12, 13, 2, 5], [14, 14, 1, 4], [36, 30, 1, 9]]
如果使用List<List<String>>
那么它看起来更像是:
public static void main(String[] args) throws Exception {
final String input = "{{\"12\",\"13\",\"2\",\"5\"},{\"14\",\"14\",\"1\",\"4\"},{\"36\",\"30\",\"1\",\"9\"}}";
final String[] rows = input.replaceAll("^\\{\\{|}}$", "").split("},\\{");
final List<List<String>> transformed = new ArrayList<>();
for (final String row : rows) {
final String[] columns = row.replaceAll("^\"|\"$", "").split("\",\"");
final List<String> transformedRow = new ArrayList<>();
for (final String data : columns) {
transformedRow.add(data);
}
transformed.add(transformedRow);
}
}
更少通过索引循环使代码更清晰一些,但这确实是String
处理,这是一个痛苦的部分,所以你收益不大。
看起来像JSON数据,是吗? –
是的,它是JSON种类,但它是输出我从另一个软件得到,现在我想将它们存储在数组中进行进一步处理 –
@BoristheSpider这是无效的JSON。对于正确的json,花括号必须用方括号代替,因为这些值没有辅助键。 – danijoo