任何人都可以解释一下contains()方法在String类中的工作原理吗?

时间:2015-07-16 09:14:27

标签: java

public boolean contains(CharSequence s) {
    return indexOf(s.toString()) > -1;
}

这是String类中的预定义方法,但我不理解传递参数CharSequence sindexOf(s.toString()) > -1

有人会清楚地解释我,因为我是java新手,主要是什么 indexOf方法将在返回类型中执行。

4 个答案:

答案 0 :(得分:1)

indexOf()将返回subString的索引(如果它在调用的字符串中存在或-1

在这种情况下,它将通过>与-1进行比较,从而生成truefalse,然后返回。

答案 1 :(得分:1)

CharSequence是一个接口,因此String#contains可以接受实现该接口的任何内容。其中一个实现它的类是String,但也有其他类。

CharSequence定义了一种方法toString,可将字符序列转换为String

String定义indexOf method接受String子字符串,并通过返回字符串中出现的索引来告诉您字符串是否在字符串中。如果子字符串不在字符串中,则返回-1。

因此indexOf(s.toString()) > -1会告诉您字符串是否包含CharSequence s定义的子字符串。

答案 2 :(得分:0)

实际上,该方法的名称说明了一切: 当boolean z = x.contains(y);

时,字符串x包含字符串y

为了更好的解释:请点击此处 http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#contains-java.lang.CharSequence-

答案 3 :(得分:0)

indexOf 方法返回目标字符串的第一个出现位置。 如果找不到匹配字符串,则返回-1。 因此,如果 indexOf 方法返回-1,则表示找不到任何匹配项。这导致了错误的结果。