我目前正在Android Studio中开发Java应用程序。
我面临一个小问题。我有一个来自网络服务的大文件,它已经在一个变量中。最后,我希望每个SKU
都有一个数组(总是在一个样式下)。并且数组应该只包含第一个9
值。因此,数组1应命名为:sku1[9]
和
sku1[0]="123456"
sku1[1]="123456"
sku1[2]="123456"
...
然后我需要另一个数组:sku2[9]
和
sku2[0]="123456"
sku2[1]="123456"
sku2[2]="123456"
...
如何从这个大屁股文件中提取所需的字符串并将它们放入一个漂亮的数组?
任何帮助都将不胜感激。
答案 0 :(得分:0)
由于String已经进入变量,您可以使用Pattern
匹配来提取sku
字符串,例如:
String s = "<!DOCTYPE> <div> styles = {\"sku1_1\":\"12\",..}";
Pattern pattern = Pattern.compile("(\"sku[0-9]_[0-9]\":\"[0-9]+\")");
Matcher m = pattern.matcher(s);
while(m.find()){
System.out.println(m.group(1));
}
默认情况下会忽略_
之后有多个数字的字符串。
<强>更新强>
如果您希望将值存储在array
中,则可以声明arraylist
,将元素添加到其中并将其转换回array
,例如:
String s = "<!DOCTYPE> <div> styles = {\"sku1_1\":\"12\",..}";
Pattern pattern = Pattern.compile("(\"sku[0-9]_[0-9]+\":\"[0-9]\")");
Matcher m = pattern.matcher(s);
List<String> values = new ArrayList<>();
while(m.find()){
String[] tokens = m.group(1).split(":");
values.add(tokens[1]);
}
String[] array = values.toArray(new String[values.size()]);
这样,它会将值放在数组中。如果你想要多个数组,那么你可以检查第一个标记的值(即tokens[0]
)并初始化新列表,如果它已经从让我们说sku1
更改为sku2