String.indexOf()的四种方法
String.indexOf(String str)

官方解释 :

返回此字符串中第一次出现指定子字符串的索引。返回的索引是最小值k ,其中: this.startsWith(str, k)如果不存在这样的k值,则返回-1 。
参数:
str – 要搜索的子字符串。
返回:
指定子字符串第一次出现的索引,如果没有这样的出现,则为-1 。

 public int indexOf(String str) {
     return indexOf(str, 0);
 }
 public static void main(String[] args) {
     String  str="abcdefg";
     System.out.println("String.indexOf(String s):"+str.indexOf("b"));
 }
}

在这里插入图片描述

String.indexOf(String str ,int from index)

官方解释:

返回此字符串中第一次出现指定子字符串的索引,从指定索引开始。
返回的索引是最小值k ,其中:k >= fromIndex && this.startsWith(str, k)
如果不存在这样的k值,则返回-1 。
参数:
str – 要搜索的子字符串。
fromIndex – 开始搜索的索引。
返回:
指定子字符串第一次出现的索引,从指定索引开始,如果没有这样的出现,则为-1

public int indexOf(String str, int fromIndex) {
 return indexOf(value, 0, value.length,
   str.value, 0, str.value.length, fromIndex);
 }
 public static void main(String[] args) {
     String  str="abcdefgabcaaabc";
     // System.out.println("String.indexOf(String s):"+str.indexOf("b"));
     System.out.println("String.indexOf(String str ,int fromIndex):"+str.indexOf("abc",1));
 }
}

在这里插入图片描述

String.indexOf(int ch)

官方解释:

返回此字符串中第一次出现指定字符的索引。 如果值ch的字符出现在此String对象表示的字符序列中,则返回第一次出现的索引(以 Unicode 代码单元表示)。 对于 0 到 0xFFFF(含)范围内的ch值,这是满足以下条件的最小值k :this.charAt(k) == ch是真的。 对于ch其他值,它是满足以下条件的最小值k :this.codePointAt(k) == ch是真的。 在任一情况下,如果此字符串中没有出现此类字符,则返回-1 。
参数:
ch – 一个字符(Unicode 代码点)。
返回:
此对象表示的字符序列中该字符第一次出现的索引,如果该字符没有出现,则为-1 。

public int indexOf(int ch) {
 return indexOf(ch, 0);
}
public static void main(String[] args) {
 String  str="abcdefgabcaaabc";
 // System.out.println("String.indexOf(String s):"+str.indexOf("b"));
 // System.out.println("String.indexOf(String str ,int fromIndex):"+str.indexOf("abc   ",1));
 System.out.println("String.indexOf(int ch):"+str.indexOf('b'));
}

在这里插入图片描述

String.indexOf(int ch,int fromIndex)

官方解释:

返回此字符串中第一次出现指定字符的索引,从指定索引开始搜索。
如果值ch的字符出现在此String对象表示的字符序列中,索引不小于fromIndex ,则返回第一个此类出现的索引。 对于 0 到 0xFFFF(含)范围内的ch值,这是满足以下条件的最小值k : (this.charAt(k) == ch) && (k >= fromIndex)是真的。 对于ch其他值,它是满足以下条件的最小值k : (this.codePointAt(k) == ch) && (k >= fromIndex)是真的。 在任何一种情况下,如果此字符串中的fromIndex位置或之后没有出现此类字符,则返回-1 。
fromIndex的值没有限制。 如果它是负数,它与它为零的效果相同:可以搜索整个字符串。 如果它大于此字符串的长度,则其效果与等于此字符串的长度相同:返回-1 。
所有索引均以char值(Unicode 代码单元)指定。
参数:
ch – 一个字符(Unicode 代码点)。
fromIndex – 开始搜索的索引。
返回:
此对象表示的字符序列中该字符第一次出现的索引,该索引大于或等于fromIndex ,如果该字符没有出现,则为-1 。

public int indexOf(int ch, int fromIndex) {
 final int max = value.length;
 if (fromIndex < 0) {
     fromIndex = 0;
 } else if (fromIndex >= max) {
     // Note: fromIndex might be near -1>>>1.
     return -1;
 }
public static void main(String[] args) {
 String  str="abcdefgabcaaabc";
 // System.out.println("String.indexOf(String s):"+str.indexOf("b"));
 // System.out.println("String.indexOf(String str ,int fromIndex):"+str.indexOf("abc   ",1));
 // System.out.println("String.indexOf(int ch):"+str.indexOf('b'));
 System.out.println("String.indexOf(int ch ,int fromIndex): "+str.indexOf('a', 3));
}

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐