【问题标题】:Android converting string to array string [closed]Android将字符串转换为数组字符串[关闭]
【发布时间】:2013-09-17 23:07:18
【问题描述】:

我有一个这样的字符串:

["477","com.dummybilling","android.test.purchased","inapp:com.dummybilling:android.test.purchased","779"]

如何拥有一个带有这 5 个元素的 String[]? 有人知道.split() 方法的正则表达式吗?

非常感谢,正则表达式让我抓狂! :(

【问题讨论】:

  • 为什么不使用 JSON 解析器?
  • 你到底想要什么?
  • @BackSlash 我正在尝试使用 JSON:我将其转换为 JSONArray,但随后我通过从 json 对象中取出字符串值来捕获一些扩展...
  • @Jitesh Dalsaniya 我想从这个字符串中得到一个字符串数组:["data1","data2","data3","data4","data5"]
  • 这个数组是JSON数组还是简单的?

标签: java android regex arrays string


【解决方案1】:

将其作为 JSON 处理。两个直接的好处是它会自动处理您数据中的任何嵌入逗号,另一个是您会得到一个带有 unquoted 字符串的String[]

String input = "[\"477\",\"com.dummybilling\",\"android.test.purchased\",\"inapp:com.dummybilling:android.test.purchased\",\"779\"]";

JSONArray jsonArray = new JSONArray(input);
String[] strArr = new String[jsonArray.length()];

for (int i = 0; i < jsonArray.length(); i++) {
    strArr[i] = jsonArray.getString(i);
}

System.out.println(Arrays.toString(strArr));

输出

[477, com.dummybilling, android.test.purchased, inapp:com.dummybilling:android.test.purchased, 779]

【讨论】:

  • @Tarsem,是的,伙计。你有遇到什么问题吗?在我的最后工作正常。
  • 是的,但我已修复 :) +1 以获得准确和正确的解决方案。
  • @Tarsem,现在试试像4,7,7 这样的逗号。这不是很酷吗? :)
  • 是的,试过了,很酷:) o/p => 4,7,7
  • 非常感谢,它对我有用 :)
【解决方案2】:

您可以像这样通过分隔符["(开头)或",""](结尾)拆分字符串:

final String[] tokens = yourString.split("\",\"|\\[\"|\"\\]");

请注意,这仅适用于您的字符串。这不是一个通用的解决方案(例如,它不处理任何转义的引号)。如果您的字符串是 JSON 格式,您应该使用 @Ravi Thapliyal 建议的 JSON 解析器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 2013-07-18
    • 1970-01-01
    • 2014-01-08
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    相关资源
    最近更新 更多