Java String indexOf()方法

353 阅读3分钟

Java String indexOf()方法

indexOf():返回指定字符的索引

indexOf() 方法有以下四种形式:

  • public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
  • public int indexOf(int ch, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
  • int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
  • int indexOf(String str, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

语法:

public int indexOf(int ch )public int indexOf(int ch, int fromIndex)int indexOf(String str)int indexOf(String str, int fromIndex)

参数

  • ch -- 字符,Unicode 编码。
  • fromIndex -- 开始搜索的索引位置,第一个字符是 0 ,第二个是 1 ,以此类推。
  • str -- 要搜索的子字符串。

img

返回值

查找字符串,或字符 Unicode 编码在字符串出现的位置:

实例 1

public class Main {    
	public static void main(String args[]) {        
		String string = "aaa456ac";          
		//查找指定字符是在字符串中的下标。在则返回所在字符串下标;
		//不在则返回-1.          			  
		System.out.println(string.indexOf("b")); 
                // indexOf(String str); 返回结果:-1,"b"不存在           	         // 从第四个字符位置开始往后继续查找,包含当前位置          	
  	        System.out.println(string.indexOf("a",3));
  	        //indexOf(String str, int fromIndex); 返回结果:6           	               //(与之前的差别:上面的参数是 String 类型,
  	        //下面的参数是 int 类型)参考数据:a-97,b-98,c-99         
                // 从头开始查找是否存在指定的字符          	 
  		System.out.println(string.indexOf(99));
  		//indexOf(int ch);返回结果:7          		
  	        System.out.println(string.indexOf('c'));
               //indexOf(int ch);返回结果:7           
               //从fromIndex查找ch,这个是字符型变量,不是字符串。
               //字符a对应的数字就是97。          
               System.out.println(string.indexOf(97,3));
               //indexOf(int ch, int fromIndex); 返回结果:6          
               System.out.println(string.indexOf('a',3));
               //indexOf(int ch, int fromIndex); 返回结果:6     
	} 
}

输出结果为:

-1
6
7
7
6
6

指定子字符串在字符串中第一次出现处的索引,从指定的索引开始。

实例 2

public class Test {    
	public static void main(String args[]) {        
		String Str = new String        
		String SubStr1 = new String("runoob");        
		String SubStr2 = new String("com");         				System.out.print("查找字符 o 第一次出现的位置 :" );        		System.out.println(Str.indexOf( 'o' ));        				System.out.print("从第14个位置查找字符 o 第一次出现的位置 :" );        
		System.out.println(Str.indexOf( 'o', 14 ));        			System.out.print("子字符串 SubStr1 第一次出现的位置:" );         System.out.println( Str.indexOf( SubStr1 ));        		 System.out.print("从第十五个位置开始搜索子字符串 SubStr1 第一次出现的位置 :" );        
                System.out.println( Str.indexOf( SubStr1, 15 ));        	
                System.out.print("子字符串 SubStr2 第一次出现的位置 :" );        
                System.out.println(Str.indexOf( SubStr2 ));    
	}
}

以上程序执行结果为:

查找字符 o 第一次出现的位置 :12
从第14个位置查找字符 o 第一次出现的位置 :17
子字符串 SubStr1 第一次出现的位置:9
从第十五个位置开始搜索子字符串 SubStr1 第一次出现的位置 :-1
子字符串 SubStr2 第一次出现的位置 :16