您好,我想将我的匹配项存储在我的数组中,但不断出现nullpointer或out of bounds的错误。
final String mcontentURI[] = new String[count];
for (int i = 0; i < count; i++) {
Pattern p = Pattern.compile("src=\"(.*?)\"");
Matcher m = p.matcher(content_val);
if (m.find()) {
mcontentURI[i] = (m.group(i+1));
}
}
答案 0 :(得分:1)
由于您不断重新编译相同的正则表达式,因此组编号将保持不变。但是,您可以将它放在数组的不同索引处:
final String mcontentURI[] = new String[count];
final Pattern p = Pattern.compile("src=\"(.*?)\"");
for (int i = 0; i < count; i++) {
Matcher m = p.matcher(content_val); // Use different strings here
if (m.find()) {
mcontentURI[i] = m.group(1);
}
}
请注意,对于模式不匹配的索引,mcontentURI[i]
将保留null
。
如果要搜索相同的字符串,请执行以下操作:
final String mcontentURI[] = new String[count];
final Pattern p = Pattern.compile("src=\"(.*?)\"");
Matcher m = p.matcher(content_val);
int i = 0;
while (i < count && m.find()) {
mcontentURI[i++] = m.group(1);
}