原文:indexOf in Java – How to Find the Index of a String in Java,作者:Ihechikara Vincent Abba
字符串是嵌套在双引号中的字符的集合。indexOf
方法返回指定字符或子串在字符串中的索引位置。
在这篇文章中,我们将看到不同 indexOf
方法的语法。我们还将看一些例子,以帮助你理解并有效地使用它们,在你的 Java 代码中找到一个字符或子串的索引。
indexOf
方法的语法
indexOf
方法有以下几种方法:
public int indexOf(int char)
public int indexOf(int char, int fromIndex)
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
在看到一些例子之前,让我们解释一下这些参数:
char
表示一个字符串中的单个字符。fromIndex
表示搜索一个字符或子串的索引应该从哪个位置开始。当一个字符串中有两个相同值的字符/字符串时,这一点很重要。通过这个参数,你可以告诉indexOf
方法从哪里开始操作。str
代表字符串中的一个子串。
如果你还不明白这一切是如何运作的,不要担心——例子会帮你理解。
如何在 Java 中使用 indexOf 方法
在下面的第一个例子中,我们将找到一个字符串中单个字符的索引。这个例子将帮助我们理解 public int indexOf(int char)
方法。
indexOf(int Char)
方法示例
public class Main {
public static void main(String[] args) {
String greetings = "Hello World";
System.out.println(greetings.indexOf("o"));
// 4
}
}
在上面的代码中,我们得到了字符 “o” 的索引,即 4,我们有两个 “o” 字符,但第一个字符的索引被返回。
在下一个例子中,我们将看到我们如何返回第二个 “o” 的索引。
如果你想知道索引数字是如何得出的,那么你应该注意到,一个字符串中的第一个字符的索引是 0,第二个字符的索引是 1,以此类推。
indexOf(int Char, Int fromIndex)
方法实例
下面是一个解释 int indexOf(int char, int fromIndex)
方法的例子:
public class Main {
public static void main(String[] args) {
String greetings = "Hello World";
System.out.println(greetings.indexOf("o", 5));
// 7
}
}
在上面的例子中,我们告诉 indexOf
方法要从第五个索引开始操作。
H => index 0
e => index 1
l => index 2
l => index 3
0 => index 4
请注意,索引 5 不是 “W” 这个字符,而是 “Hello” 和 “World” 之间的空格。
所以从上面的代码来看,在第 5 个索引之前的其他每个字符都将被忽略。7 被返回为第二个 “o” 字符的索引。
Int indexOf(String Str)
方法实例
在下一个例子中,我们将了解返回子串索引的公共 public int indexOf(String str)
方法是如何工作的。
public class Main {
public static void main(String[] args) {
String motivation = "Coding can be difficult but don't give up";
System.out.println(motivation.indexOf("be"));
// 11
}
}
想知道为什么返回 11 吗?你应该看看上一节,了解索引是如何计算的,子串之间的空格也算作索引。
请注意,当子串被作为参数传入时,返回的索引是子串中第一个字符的索引——11 是 “b” 字符的索引。
indexOf(String Str, Int fromIndex)
方法示例
最后一个方法 public int indexOf(String str, int fromIndex)
——与 public int indexOf(int char, int fromIndex)
方法相同,它从一个指定的位置返回一个索引。
下面是一个例子:
public class Main {
public static void main(String[] args) {
String motivation = "The for loop is used for the following";
System.out.println(motivation.indexOf("for", 5));
// 21
}
}
在上面的例子中,我们指定该方法应该从第 5 个索引开始操作,也就是第一个 “for” 子串之后的索引。21 是第二个 “for” 子串的索引。
最后,当我们传入一个在字符串中不存在的字符或子串时,indexOf
方法将返回值 -1。下面是一个例子:
public class Main {
public static void main(String[] args) {
String motivation = "The for loop is used for the following";
System.out.println(motivation.indexOf("code"));
// -1
}
}
总结
在这篇文章中,我们学习了如何使用四个 indexOf
方法,用一个例子解释了每个不同的方法。
我们还看到了这些方法的语法是什么样子的,以及它们如何能够判断要返回的索引。
最后,我们展示了当一个不存在的字符或子串作为参数传入时会发生什么。
祝你编程愉快!