有人可以告诉我,PHP preg_grep()
是否存在Java等价物?或者为我提供一个很好的方法来实现同样的目标?
我需要对输入数组中的元素进行字符串匹配,并将输入数组的索引作为preg_grep()
返回数组。
答案 0 :(得分:0)
没有确切的等价物。但您可以使用String#matches(String)函数来测试字符串是否与给定模式匹配。例如:
String s = "stackoverflow";
s.matches("stack.*flow"); // <- true
s.matches("rack.*blow"); // <- false
如果你想要一个带有匹配索引的结果数组,你可以遍历给定的字符串输入数组,检查匹配并将循环的当前索引添加到结果数组中。
答案 1 :(得分:0)
您可以使用此类函数,使用String.matches()
并迭代您的数组:
public static List<Integer> preg_grep(String pattern, List<String> array)
{
List<Integer> indexes = new ArrayList<Integer>();
int index = 0;
for (String item : array) {
if (item.matches("ba.*")) {
indexes.add(index);
}
++index;
}
return indexes;
}
答案 2 :(得分:0)
如下:
private static String[] filterArrayElem(String[] inputArray) {
Pattern pattern = Pattern.compile("(^a.*)");
List<String> resultList = new ArrayList<>();
for (String inputStr : inputArray) {
Matcher m = pattern.matcher(inputStr);
if (m.find()) {
resultList.add(m.group(0));
}
}
return resultList.toArray(new String[0]);
}
然后您可以通过以下方式使用它:
String [] input = { "apple", "banana", "apricot"};
String [] result = filterArrayElem(input);