Java 字符串常用方法

Java 字符串 indexOf() 方法返回指定字符或字符串在指定字符串中第一次出现的位置。索引的位置从下标0开始计算。

语法

序号方法说明
1int indexOf(int ch)返回给定char值的索引位置
2int indexOf(int ch, int fromIndex)返回给定char值和from index的索引位置
3int indexOf(String substring)返回给定子字符串的索引位置
4int 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

我们观察到,当找到搜索的字符串或字符时,该方法返回一个非负值。如果未找到字符串或字符,则返回 -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

方法示例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

方法示例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