Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中用于indexof方法的regexp_Java_Regex_String_Indexof - Fatal编程技术网

java中用于indexof方法的regexp

java中用于indexof方法的regexp,java,regex,string,indexof,Java,Regex,String,Indexof,我们可以将regexp用于String的indexof()方法吗。 如果是,怎么办 据我所知,这应该打印1,但它 打印“-1” 有人能解释一下吗?因为没有接受regex的indexof版本。它不是字符就是字符串 intindexof(intch) 返回第一个字符串的此字符串内的索引 指定字符的出现。 int-indexOf(int-ch,int-fromIndex) 返回第一个字符串的此字符串内的索引 指定字符的出现,从 指定索引。 int indexOf(String str) 返回此范围内的

我们可以将regexp用于String的indexof()方法吗。 如果是,怎么办

据我所知,这应该打印1,但它
打印“-1”

有人能解释一下吗?

因为没有接受regex的
indexof
版本。它不是字符就是字符串

intindexof(intch)

返回第一个字符串的此字符串内的索引 指定字符的出现。
int-indexOf(int-ch,int-fromIndex)

返回第一个字符串的此字符串内的索引 指定字符的出现,从 指定索引。
int indexOf(String str)

返回此范围内的索引 指定子字符串第一次出现的字符串。
int-indexOf(字符串str,int-fromIndex)

返回此范围内的索引 指定子字符串第一次出现的字符串,从处开始 指定的索引

根据这一点,您的代码应该是

System.out.println("hello".indexOf('e'));

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;
    }
}
private static int indexOf(String s, String pattern) {
    Matcher m = Pattern.compile(pattern).matcher(s);
    if (m.find()) {
        return m.start();
    } else {
        return -1;
    }
}