我正在使用一个接收这种格式字符串的InputSteam。
[[1,3,4],[43,6,3],[4,2,5]]
我如何将其解析为可用的 java 数组?
最佳答案
这是一种无需使用第三方库即可解析该文本的方法。
public static int[][] parse(String text) {
if (! text.startsWith("[[") || ! text.endsWith("]]"))
throw new IllegalArgumentException("Invalid text: " + text);
String[] subTexts = text.substring(2, text.length() - 2).split("\\],\\[");
int[][] result = new int[subTexts.length][];
for (int i = 0; i < subTexts.length; i++) {
String[] valueTexts = subTexts[i].split(",");
result[i] = new int[valueTexts.length];
for (int j = 0; j < valueTexts.length; j++)
result[i][j] = Integer.parseInt(valueTexts[j]);
}
return result;
}
测试
System.out.println(Arrays.deepToString(parse("[[1,3,4],[43,6,3],[4,2,5]]")));
输出
[[1, 3, 4], [43, 6, 3], [4, 2, 5]]
关于java - 将格式化字符串解析为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756629/