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。
输入
searchString = "Monkey eats banana" word = "eats"
输出
The last index is 7
说明 − 在上面的示例中,单词“eats”在searchString中出现在索引7处。由于7是单词“eats”的最后一个索引,因此输出为7。
不同的方法
我们将讨论在Java中查找字符串中特定单词的最后一个索引的各种方法
方法1:使用lastIndexOf()方法
在这种方法中,我们将使用Java提供的lastIndexOf()内置方法。String类并查找字符串中特定单词的最后一个索引。
语法
以下语法指的是该方法的使用
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提供的indexOf()内置方法。String类并查找字符串中特定单词的最后一个索引。
查找字符串中特定单词的最后一个索引的步骤
-
声明并初始化一个字符串。
-
初始化我们需要查找其最后一个索引的单词。
-
使用indexOf()方法查找单词在字符串中的索引,该方法返回单词的第一次出现并将其分配给index变量。
-
使用while循环,将index分配给lastIndex,并对每个index值,使用indexOf()方法查找字符串中已找到索引位置之后的单词的新索引,并重复查找,直到index值为-1。
-
打印lastIndex,否则打印-1。
示例
在下面的示例中,我们使用字符串初始化两个变量,并使用indexOf()方法查找搜索单词在字符串中的起始索引。找到第一个索引后,使用while循环重复此操作,但每次找到新的索引位置时,都需要使用新的索引位置更新indexOf()方法中的start_index参数位置。因此,最后index值变为-1,并且在每个循环中,我们将前一个index值存储在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提供的regionMatches()内置方法。String类并查找字符串中特定单词的最后一个索引。
语法
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,并将index初始化为-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
因此,本文讨论了查找字符串中特定单词的最后一个位置的不同方法。