我有一个这样的字符串:
["477","com.dummybilling","android.test.purchased","inapp:com.dummybilling:android.test.purchased","779"]
如何拥有一个带有这 5 个元素的 String[]?有谁知道.split()
方法的正则表达式?
非常感谢,正则表达式让我抓狂!:(
将其作为 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]
您可以按分隔符["
(开头)或","
或"]
(结尾)拆分字符串,如下所示:
final String[] tokens = yourString.split("\",\"|\\[\"|\"\\]");
请注意,这仅适用于您的字符串。这不是一个通用的解决方案(例如,它不处理任何转义的引号)。如果您的字符串是 JSON 格式,您应该使用 @Ravi Thapliyal 建议的 JSON 解析器。