我们可以将regexp用于String的indexof()方法吗? 如果是这样的话
根据我的知识,这应该打印1但是它 打印" -1"
System.out.println("hello".indexOf("[e]"));
有人可以解释
答案 0 :(得分:0)
根据documentation,没有indexof
的版本接受正则表达式。它可以是char或String。
int indexOf(int ch)
返回第一个字符串中的索引 出现指定的字符int indexOf(int ch, int fromIndex)
返回第一个字符串中的索引 发生指定的字符,开始搜索 指定的索引int indexOf(String str)
返回此范围内的索引 第一次出现的指定子字符串的字符串int indexOf(String str, int fromIndex)
返回此范围内的索引 从第一次出现的指定子字符串的字符串,从 指定的索引。
根据这个,你的代码应该是
System.out.println("hello".indexOf('e'));
答案 1 :(得分:0)
indexOf
只返回第一次出现的索引。我们可以轻松地使用正则表达式模拟这种行为。
示例:
Matcher m = Pattern.compile("[e]").matcher("Hello");
if (m.find()) {
System.out.println(m.start());
}
您可以将其放入方法中:
private static int indexOf(String s, String pattern) {
Matcher m = Pattern.compile(pattern).matcher(s);
if (m.find()) {
return m.start();
} else {
return -1;
}
}