【问题标题】:How to convert a String into a String[][]如何将字符串转换为字符串[][]
【发布时间】:2010-10-22 20:10:27
【问题描述】:

我有一个这样的字符串:

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"}
      };

我该怎么做?

【问题讨论】:

  • 这不是一个有效的字符串,因为它用单引号括起来。
  • 作为一种快速的单行方法? Java 编程语言在这些方面并不重要。你必须做一些工作。此外,字符串在 Java 中的 '' 中无效。现在,如果您正在考虑使用 Javascript,那么您会问一个不同的问题。
  • 没有。它不是Java。实际上,它是来自 SAS 的字符串。但是Java程序需要[][],所以我必须转换它。谢谢!
  • 此外,如果您使用的是 Java,您确定要使用 2D 字符串而不是 HashMap 吗?或者编写一个封装显然看起来是字段的类,然后使用另一种方法来解析您的数据并使用这些类的实例?
  • 感谢您的详细评论!

标签: java arrays string


【解决方案1】:
String[] first = string.replaceAll("[({{\")(\"}})]","").split("\"},{\"");
String[][] result = new String[first.length][];
for (int i=0; i<first.length; i++)
  result[i] = first[i].split("\", \"");

我认为这是正确的 - 可能有一些带有转义字符的繁琐位。

修复了数字中逗号拆分的一些问题。

注意,这是超级脆弱的,完全取决于您提供的格式。

【讨论】:

    【解决方案2】:

    您必须考虑到一个二维数组来解析它。

    从行(由“}”分隔)开始,然后将它们分解为值。

    【讨论】:

      【解决方案3】:

      编写一个方法并使用 StringUtils http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html 使用 StringUtils 中的一种 split* 方法。由于您有一个二维数组,因此您需要运行 split* 方法两次。

      【讨论】:

        猜你喜欢
        • 2012-05-16
        • 2018-04-30
        • 2014-05-26
        • 1970-01-01
        • 1970-01-01
        • 2019-10-10
        • 2019-01-05
        • 2011-12-31
        相关资源
        最近更新 更多