我有一个这样的字符串:
String string ='{{"INPUT FILE", "NUMBER OF RECORDS"},{"Item File", "11,559"},{"Vendor File", "300"}, {"Purchase History File", "10,000"},{"Total # of requisitions", "10,200,038"}}';
我想把它转换成这样的数组:
String [][] data = {
{"INPUT FILE", "NUMBER OF RECORDS"},
{"Item File", "11,559"},
{"Vendor File", "300"},
{"Purchase History File", "10,000"},
{"Total # of requisitions", "10,200,038"}
};
我怎么能这样做?
答案 0 :(得分:3)
String[] first = string.replaceAll("[({{\")(\"}})]","").split("\"},{\"");
String[][] result = new String[first.length][];
for (int i=0; i<first.length; i++)
result[i] = first[i].split("\", \"");
我认为这是正确的 - 可能会有一些带有转义字符的虚假部分。
修正了数字中逗号分割的一些问题。
注意,这是 super 易碎,完全取决于您提供的格式。
答案 1 :(得分:0)
你必须考虑到2D阵列来解析它。
从行开始(由“}”分隔,然后将它们分解为值。
答案 2 :(得分:0)
编写一个方法并使用StringUtils http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html使用StringUtils中的split *方法之一。由于您有二维数组,因此需要运行split *方法两次。