Java 字符串 indexOf()
方法返回指定字符或字符串在指定字符串中第一次出现的位置。索引的位置从下标0开始计算。
语法
序号 | 方法 | 说明 |
---|---|---|
1 | int indexOf(int ch) | 返回给定char值的索引位置 |
2 | int indexOf(int ch, int fromIndex) | 返回给定char值和from index的索引位置 |
3 | int indexOf(String substring) | 返回给定子字符串的索引位置 |
4 | int indexOf(String substring, int fromIndex) | 返回给定子字符串的索引位置和from index |
参数
- ch:指定要查找的字符
- fromIndex:指定开始搜索的位置
- substring:指定要查找的子字符串
返回值
返回字符或字符串在指定字符串中第一次出现的位置。
内部实现
public int indexOf(int ch) {
return indexOf(ch, 0);
}
方法示例1
文件名: IndexOfExample.java
public class IndexOfExample{
public static void main(String args[]){
String s1="this is index of example";
//传递子串
int index1=s1.indexOf("is");//返回is子串的索引
int index2=s1.indexOf("index");//返回子串的索引
System.out.println(index1+" "+index2);//2 8
// 使用 from 索引传递子字符串
int index3=s1.indexOf("is",4);//返回第4个索引之后的子字符串的索引
System.out.println(index3);//5
//传递char值
int index4=s1.indexOf('s');//返回s char值的索引
System.out.println(index4);//3
}}
输出:
2 8
5
3
5
3
我们观察到,当找到搜索的字符串或字符时,该方法返回一个非负值。如果未找到字符串或字符,则返回 -1。
我们可以使用此属性来查找给定字符串中存在的字符的总数。请看以下示例。
文件名:IndexOfExample5.java
public class IndexOfExample5
{
// 主方法
public static void main(String argvs[])
{
String str = "Welcome to yxjc123";
int count = 0;
int startFrom = 0;
for(; ;)
{
int index = str.indexOf('o', startFrom);
if(index >= 0)
{
// 找到匹配项。因此,增加计数
count = count + 1;
// 开始查看搜索到的索引
startFrom = index + 1;
}
else
{
// 这里 index 的值为 - 1。因此,终止循环
break;
}
}
System.out.println("In the String: "+ str);
System.out.println("The 'o' character has come "+ count + " times");
}
}
输出:
In the String: Welcome to yxjc123
The 'o' character has come 2 times
The 'o' character has come 2 times
方法示例2
查找子字符串第一次出现的位置。
文件名: IndexOfExample2.java
public class IndexOfExample2 {
public static void main(String[] args) {
String s1 = "This is indexOf method";
// 传递子字符串
int index = s1.indexOf("method"); //返回这个子串的索引
System.out.println("index of substring "+index);
}
}
输出:
index of substring 16
方法示例3
查找子字符串第一次出现的位置,这里给定了开始搜索的位置。
文件名: IndexOfExample3.java
public class IndexOfExample3 {
public static void main(String[] args) {
String s1 = "This is indexOf method";
// 传递子字符串和索引
int index = s1.indexOf("method", 10); //返回这个子串的索引
System.out.println("index of substring "+index);
index = s1.indexOf("method", 20); // 如果未找到子字符串,则返回 -1
System.out.println("index of substring "+index);
}
}
输出:
index of substring 16
index of substring -1
index of substring -1
方法示例4
查找字符第一次出现的位置,这里给定了开始搜索的位置。
文件名: IndexOfExample4.java
public class IndexOfExample4 {
public static void main(String[] args) {
String s1 = "This is indexOf method";
// 传递 char 和 index from
int index = s1.indexOf('e', 12); //返回这个char的索引
System.out.println("index of char "+index);
}
}
输出:
index of char 17