JavaRush /Java 博客 /Random-ZH /String 类的 IndexOf 方法:为什么需要它以及它是如何工作的

String 类的 IndexOf 方法:为什么需要它以及它是如何工作的

已在 Random-ZH 群组中发布
你好!程序员经常自动使用方法,而不考虑它们是如何工作的。这些是您必须了解的基本技术。

什么是方法重载?

在我们看标题中提到的方法之前,让我们记住(并且有人会知道)方法重载是什么。 Java方法重载允许在同一个类中定义两个或多个具有相同名称的方法。仅当它们具有不同的输入参数时才可能实现。在这种情况下,方法称为重载,而过程本身称为方法重载。方法重载是Java中多态性的String 类的 IndexOf 方法:为什么需要它以及它如何工作 - 1基本原则之一。

indexOf类方法有什么用?String

想象一下你有一根长绳子。例如一封信,你需要通过你已经知道的名字找到收件人的第一个地址所在的地方。你将如何做到这一点?使用indexOf java类方法String。这个方法是我们上面讨论过的方法重载的典型例子。

方法选项indexOf

该方法java string indexOf有四种不同的变体:

1号。indexOf(int ch)

该方法int indexOf(int ch)返回给定字符串中指定字符第一次出现的索引。换句话说,我们将得到给定字符第一次出现的次数,从左到右计数。例子:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
控制台输出:

2
如果我们要查找的字符不在这一行中,我们将得到-1。
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
控制台输出:

-1
PS 为了不混淆任何东西,你一定不要忘记一行中的字符不是从“1,2,3...”开始计算的,而是从“0,1,2...”开始计算的

2号。indexOf(int ch, int fromIndex)

该方法int indexOf(int ch, int fromIndex)返回此字符串中指定字符第一次出现的索引,从指定索引处开始搜索。这种方法是前一种方法的更现代化的版本。不同之处在于我们指示搜索实际开始的元素编号。例子:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
控制台输出:

9
如果进行搜索的索引超过字符串的长度,则答案将为 -1。String 类的 IndexOf 方法:为什么需要它以及它如何工作 - 2您可能已经注意到,在这两个方法的签名中(方法将其作为参数),传递的符号的类型指定为int,而不是char。然而,我们传送了char。这是因为字符串存储为字节数组,其中单元格对应于类型的特定字符char。字节之间的对应关系char是根据ASCII表进行的。ASCII(美国信息交换标准代码)是将常见的可打印和不可打印字符映射到数字代码的表。因此,当传递某个字符时char,它会自动转换为在 ASCII 表中表示该字符的数字。基于此,我们可以直接将数字(int)传递给方法,它对应于我们需要的字符。例如,ASCII 表中的字符“e”对应于数字 101,因此我们可以重复前面的示例,但不需要char
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
我们的控制台输出没有改变:

9
PS 在某些情况下,这些方法是可以互换的,例如str.indexOf('e');它会类似 - str.indexOf('e', 0);

第三。indexOf(String str)

该方法int indexOf(String str)返回给定行中指定子字符串第一次出现的索引。它与第一个选项根本不同,因为此方法已经搜索整个子字符串 ( String)。多亏了这一点,我们可以寻找更具体的东西。例子:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
控制台输出:

0
PS 所有变体indexOf均区分大小写:大写字符(大写字母)和小写字符(小写字母)被视为不同。当心。

4号。indexOf(String str, int fromIndex)

该方法indexOf(String str, int fromIndex)返回指定子字符串在该行中第一次出现的索引,从指定索引开始。此选项又是一个更现代化的先前选项,但指示了将进行搜索的位置。例子:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
控制台输出:

26
PS 如果指定负的起始索引,该方法indexOf会将其视为 0。在这种情况下,该方法将再次类似于前一种方法(其中未指定起始索引)。这就是今天的全部内容。现在,由于indexOfJava,您有了更多的知识!
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION