您可以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