Java 在字符串中查找特定单词的最后索引
字符串是字符的序列。在Java中,字符串也是对象。它是 String类 的对象。字符串中特定单词的最后索引就是该单词在字符串中最后出现的位置。字符串中字符的索引定义或表示字符串中的位置。位置或索引始终从0开始。在本节中,我们将讨论如何实现一个Java程序来查找字符串中特定单词的最后索引。字符串在Java中是不可变的,即无法修改字符串。如果我们修改一个字符串,将会创建一个新对象。
示例
输入
searchString = "He is the one and only one male person in our team" word = "one"
输出
The last index is 23
解释 − 在上面的示例中,“one”这个单词在searchString中的索引为10和23。由于23是单词“one”的最后一个索引,所以输出结果是23。
Input
searchString = "Monkey eats banana" word = "eats"
输出
The last index is 7
解释 - 在上述示例中,单词“eats”出现在搜索字符串的索引7位置。由于7是单词“eats”的最后一个索引,输出结果为7。
现在,我们将讨论在Java中查找字符串中特定单词的最后一个索引的各种方法。
方法1:使用lastIndexOf()方法
在这种方法中,我们将使用Java提供的String Class中的lastIndexOf()内置方法,在字符串中找到特定单词的最后一个索引。
语法
下面的语法表示了该方法的用法
strobj.lastIndexOf(string)
该方法返回给定输入参数的特定字符串的最后一个索引。
步骤
- 声明并初始化一个字符串。
-
初始化我们需要找到其最后一个索引的字符串。
-
使用lastIndexOf()方法在给定字符串中找到给定单词的最后一个索引,并将其存储在一个变量中。
-
打印变量的值以获取最后一个索引值。
示例
在此示例中,我们初始化一个字符串和要搜索的单词,并使用’lastIndexOf()’方法。如果输入参数字符串不存在,则返回-1;如果存在,则返回字符串出现的最后一个索引。
// Java program to find lastIndex of a particular word in string.
import java.util.*;
public class Main {
public static void main(String[] args) {
String str = "He is the one and only one male person in our team";
String word = "one";
int lastindex = str.lastIndexOf(word);
if (lastindex == -1) {
System.out.println("The word not present in string.");
} else {
System.out.println("The last index of the searched word ==> " + word + " is "+ lastindex);
}
}
}
输出
The last index of the searched word ==> one is 23
方法2:使用indexOf()方法
在这种方法中,我们将使用java.String类提供的indexOf()内置方法,查找字符串中特定单词的最后一个索引。
步骤
- 声明并初始化一个字符串。
-
初始化要查找的最后一个索引的单词。
-
使用indexOf()方法在字符串中查找单词的索引,该方法返回单词的第一个出现位置,并将其赋给索引变量。
-
使用while循环,将索引赋给lastindex,并且对于每个索引值,在字符串中已找到的索引位置之后找到单词的新索引,使用indexOf()方法,反复执行此操作,直到索引值为-1为止。
-
打印lastindex,否则打印-1。
示例
在下面的示例中,我们将两个变量初始化为字符串,并使用‘indexOf()’方法在字符串中查找搜索单词的起始索引。在找到第一个索引后,使用while循环重复此过程,但每次在‘indexOf()’方法中需要更新start_index参数位置为新的索引位置。因此,最后索引值变为-1,并且在每次循环中,我们将前一个索引值存储在lastIndex中,最后打印lastIndex的值。
//java program to find last index of a particular word in a string using indexOf() method
import java.util.*;
public class Main {
public static void main(String[] args) {
String str = "He is the one and only one male person in our team";
String word = "one";
int lastindex = -1;
int index = str.indexOf(word);
while (index != -1) {
lastindex = index;
index = str.indexOf(word, index + 1);
}
if (lastindex == -1) {
System.out.println("The word not present in string.");
} else {
System.out.println("The last index is " + lastindex);
}
}
}
输出
The last index is 23
方法3:使用regionMatches()方法
在这种方法中,我们将使用Java String类提供的regionMatches()内置方法,在字符串中找到特定单词的最后一个索引。
语法
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int offset, int len)
参数
- int offset - 要比较的第一个字符串的区域的起始索引。
-
String other - 要与之比较的字符串。
-
int offset - 要比较的其他字符串的区域的起始索引。
-
int len - 要比较的字符数。
-
boolean ignoreCase - 指示是否不区分大小写进行比较。如果此参数值为“true”,则比较是不区分大小写的,否则反之。
如果指定的两个字符串的指定区域匹配,则此方法返回true,否则返回false。
以下示例说明了该方法的用法 –
String str1 = "Hello, world!";
String str2 = "HELLO, WORLD!";
boolean match1 = str1.regionMatches(0, str2, 0, 12, false); // match1 is false
boolean match2 = str1.regionMatches(true, 0, str2, 0, 12); // match2 is true
步骤
- 使用一个变量str初始化一个字符串。
-
用字符串进行初始化另一个变量word,并将索引设置为-1。
-
使用for循环,使用’regionMatches()’方法查找索引并打印该值。
示例
在这个示例中,我们初始化了两个带有字符串的变量,并初始化了一个带有-1的lastIndex变量。然后,我们从字符串的最后面开始迭代,每次迭代时都检查字符串区域是否与搜索字符串匹配,使用’regionMatches()’方法进行匹配。如果匹配,则该方法返回true,因此我们可以存储lastIndex的值并打印该值。
//Java program to find the last index of a particular word in a string
import java.util.*;
public class Main {
public static void main(String[] args) {
String str = "Monkey eats banana";
String word = "eats";
int index = -1;
for(int i = str.length() - word.length(); i >= 0; i--) {
if(str.regionMatches(i, word, 0, word.length())) {
index = i;
break;
}
}
System.out.println("Last index is " + index);
}
}
输出
Last index is 7
因此,在本文中我们讨论了在字符串中找到特定单词的最后位置的不同方法。