【问题标题】:Java convert String that looks like an Array into a String Array or String ArrayListJava 将看起来像 Array 的 String 转换为 String Array 或 String ArrayList
【发布时间】:2014-12-26 00:39:31
【问题描述】:

我有一个看起来像数组的字符串:

["944", "The name", "Hi, hi", 1, 6, 0, false, "the date"]

注意:上面的内容包含在" 中,就像字符串一样。所以整数和布尔值在这个字符串中,像“944”这样的也在字符串中,如果你愿意的话,一个字符串在一个字符串中。

如何将其设为 Java 字符串数组或字符串数​​组列表?

【问题讨论】:

  • 您正在寻找 JSON 解析器。
  • 修剪引号和方括号,用逗号分隔。完成。
  • @ThomasJunk,那行不通。在上面的示例中,这将拆分第三个元素“Hi, hi”。但是,是的,我忘了我在这个项目中有 Gson。搞定了。
  • @David 是的,你是对的:必须先用逗号分隔 ;)

标签: java arrays string


【解决方案1】:

我使用 Gson 解决了它。

Type listType = new TypeToken<List<String>>() {}.getType();
List<String> postData = new Gson().fromJson(stringThatLooksLikeArray, listType);

【讨论】:

  • 这是唯一在拆分字符串时注意双引号的解决方案。
  • 我认为我遇到的大多数问题都是在进行某种形式的数据传输(很可能是通过 JSON),因此在任何类型的项目中使用 Gson 都可以提供这些很棒的简短解决方案。
【解决方案2】:

修剪非数据的头部和尾部然后拆分:

String[] parts = str.replaceAll("^\\[|\\]$", "").split(",(?=(([^\"]*\"){2})*[^\"]*$)");

逗号分割的前瞻资产不在引号对中。

【讨论】:

  • "Hi, hi" 分手了。
  • @aioobe 不,它没有
  • 在我写评论时确实如此。现在看起来不错。 (但您可能需要修剪部分。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 2019-11-23
  • 1970-01-01
相关资源
最近更新 更多