麻烦帮忙说说java中indexOf的用法,最好有事例,谢谢!

如题所述

IndexOf 方法用于返回 String 对象内第一次出现子字符串的字符位置。其语法形式为:strObj.indexOf(subString[, startIndex]),其中 strObj 是必需的,表示 String 对象或文字;subString 是必需的,表示要在 String 对象中查找的子字符串;而 startIndex 是可选的,表示该整数值指出在 String 对象内开始查找的索引,默认情况下,它从字符串的开始处查找。

如果子字符串未找到,此方法返回 -1。如果 startIndex 为负数,它将被视作零。如果 startIndex 比最大的字符位置索引还大,它将被视作最大的可能索引。从左向右执行查找。如果查找位置超出范围,则返回 -1。此方法与 lastIndexOf 相同。

下面是一个示例程序,展示了如何使用 indexOf 方法来截取字符串:

public class TestSubString { public static void main(String[] args) { String str = "This is my original string!"; str = str.substring(6); //str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str; System.out.println(str); str = str.substring(2,10); //截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str; System.out.println(str); String s = "This is my second original string!"; String toDel = "original"; if(s.startsWith(toDel)) s = s.substring(toDel.length()); else if(s.endsWith(toDel)) s = s.substring(0,s.length() - toDel.length()); else { int index = s.indexOf(toDel); //IndexOf 方法 返回 String 对象内第一次出现子字符串的字符位置。 if(index != -1) { String s1 = s.substring(0,index); String s2 = s.substring(index+toDel.length()); s = s1 + s2; } else System.out.println("String: "+toDel+" not be found!"); } System.out.println(s); String sr = "This is my third string!"; String sx= "is"; int index = sr.indexOf(sx); System.out.println(index); int index2 = sr.indexOf(sx,3); System.out.println(index2); } }

在上述示例中,我们首先定义了一个字符串 str,然后使用 substring 方法从索引 6 开始截取字符串。接着,我们再次使用 substring 方法从索引 2 开始截取到索引 10 结束。

然后,我们定义了一个新的字符串 s,以及一个要删除的子字符串 toDel。我们使用了 startsWith 和 endsWith 方法来判断字符串 s 是否以 orignal 开头或结尾。如果是,则使用 substring 方法删除对应的子字符串。否则,我们使用 indexOf 方法查找子字符串 toDel 在字符串 s 中的位置。如果找到子字符串,我们将其分割成两部分,即从索引 0 到子字符串 toDel 的位置和从子字符串 toDel 的下一个位置到字符串 s 结尾的部分。如果未找到子字符串,我们则输出相应的提示信息。

最后,我们定义了一个新的字符串 sr 和子字符串 sx。我们使用了 indexOf 方法来查找子字符串 sx 在字符串 sr 中的位置。然后,我们再次使用了 indexOf 方法,但这次指定了从索引 3 开始查找。输出这两个索引值。

通过这些示例,我们可以看到 indexOf 方法在处理字符串时的应用,以及如何结合其他字符串方法来实现字符串的截取和处理。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜