10

我有一个这样的字符串:

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

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

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

4

2 回答 2

30

将其作为 JSON 处理。两个直接的好处是它会自动处理数据中任何嵌入的逗号,另一个是你会得到一个不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]
于 2013-09-13T10:00:53.813 回答
2

您可以按分隔符["(开头)或",""](结尾)拆分字符串,如下所示:

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

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

于 2013-09-13T10:01:11.560 回答