📅  最后修改于: 2023-12-03 14:53:16.405000             🧑  作者: Mango
在开发Java应用程序时,有时候需要在字符串中查找特定字符或子字符串的出现位置。但是,如果需要获取第二个或更多出现的索引,该怎么办呢?
Java提供了多种方法来获取第二次出现的索引。下面将介绍其中两种方法。
indexOf()方法可用于在字符串中查找指定字符第一次出现的位置。但是,该方法还有一个重载的版本,它可以指定开始搜寻的位置。
例如,以下代码将在字符串"Hello World"中查找字符"o",并从第四个字符开始搜寻。
String str = "Hello World";
int index = str.indexOf('o', 4);
System.out.println(index);
输出:
7
这里的输出为7,因为第二个字符"o"是在第七个位置上出现的。同样的,也可以通过以下代码获取第二次出现的索引:
String str = "Hello World";
int firstIndex = str.indexOf('o');
int secondIndex = str.indexOf('o', firstIndex + 1);
System.out.println(secondIndex);
输出:
7
这里的输出依然为7,因为第二个字符"o"也是在第七个位置上出现的。如果要获取第三个或更多出现的索引,可通过类似的方式循环获取。
Apache Commons Lang库是Java中广泛使用的一组通用工具,其中StringUtils类提供了许多字符串处理的便利方法。
具体来说,StringUtils类中提供了一个ordinalIndexOf()方法,它可以在指定字符串中查找指定子字符串第N次出现的位置。例如,以下代码将在字符串"Hello World"中查找第二次出现的字符"o"。
String str = "Hello World";
int index = StringUtils.ordinalIndexOf(str, "o", 2);
System.out.println(index);
输出:
7
这里的输出依然为7,因为第二个字符"o"也是在第七个位置上出现的。
不过需要注意的是,使用StringUtils类需要先导入它的包,且需要通过Maven等构建工具来管理其依赖。如果只是为了获取第二次出现的索引,使用indexOf()方法即可。