# Java `String.indexOf()`方法示例

> 原文： [https://howtodoinjava.com/java/string/java-string-indexof-method-example/](https://howtodoinjava.com/java/string/java-string-indexof-method-example/)

[Java 字符串](https://howtodoinjava.com/java-string/)`indexOf()`方法返回给定参数字符或字符串的**索引**。 如果在字符串中找不到参数，则方法返回`-1`。 字符串的索引计数器从零开始。

## Java `String.indexOf()`方法语法

`String.indexOf()`方法具有四种重载形式：

| 序号 | 方法语法 | 描述 |
| --- | --- | --- |
| 1. | `int indexOf(String substring)` | 返回给定**子字符串**的索引位置 |
| 2. | `int indexOf(String substring, int fromIndex)` | 从`fromIndex`位置返回给定**子字符串**的索引位置 |
| 3. | `int indexOf(int ch)` | 返回给定`char`值的索引位置 |
| 4. | `int indexOf(int ch, int fromIndex)` | 返回给定`char`值和`fromIndex`位置的索引位置 |

#### 不允许使用`null`参数

不允许将`null`参数传递给`indexOf()`方法。 这将导致`NullPointerException`异常。

```java
String blogName = "howtodoinjava.com";
System.out.println( blogName.indexOf(null) );

//Program output

Exception in thread "main" java.lang.NullPointerException
	at java.lang.String.indexOf(String.java:1705)
	at java.lang.String.indexOf(String.java:1685)
	at com.StringExample.main(StringExample.java:9)

```

## 1\. Java `String.indexOf(String substring)`示例

Java 程序使用`indexOf(String substring)`方法在给定的字符串对象中查找子字符串的索引。

```java
public class StringExample 
{
    public static void main(String[] args) 
    {
        String blogName = "howtodoinjava.com";

        System.out.println( blogName.indexOf("java") );			//9

        System.out.println( "hello world".indexOf("world") );	//6

        System.out.println( "hello world".indexOf("earth") );	//-1
    }
}

```

程序输出。

```java
9
6
-1

```

## 2\. Java `String.indexOf(String substring, int fromIndex)`示例

Java 程序，使用给定的`indexOf(String substring, int fromIndex, int fromIndex)`方法，在给定的`fromIndex`中查找给定字符串对象中的`substring`索引。

> 请注意，找到子字符串时，索引计数仅从 0 索引开始，并且仅从字符串开头开始。

```java
public class StringExample 
{
    public static void main(String[] args) 
    {
        String blogName = "howtodoinjava.com";

        System.out.println( blogName.indexOf("java", 5) );			//9
        System.out.println( "hello world".indexOf("world", 6) );	//6
        System.out.println( "hello world".indexOf("world", 2) );	//6
        System.out.println( "hello world".indexOf("world", 10) );	//-1
    }
}

```

程序输出：

```java
9
6
6
-1

```

## 3\. Java `String.indexOf(char ch)`示例

Java 程序使用`indexOf(char ch)`方法在给定的字符串对象中查找给定字符`'ch'`的索引。

```java
public class StringExample 
{
    public static void main(String[] args) 
    {
        String blogName = "howtodoinjava.com";

        System.out.println( blogName.indexOf('j') );            //9
        System.out.println( "hello world".indexOf('w') );       //6
        System.out.println( "hello world".indexOf('k') );       //-1
    }
}

```

程序输出：

```java
9
6
-1

```

## 4\. Java `String.indexOf(int ch, int fromIndex)`示例

Java 程序使用给定的`indexOf(String substring, int fromIndex)`方法从给定的`fromIndex`位置开始在给定的字符串对象中查找字符`'ch'`的索引。

> 请注意，找到字符后，索引计数仅从 0 索引开始，并且仅从字符串的开头开始。

```java
public class StringExample 
{
    public static void main(String[] args) 
    {
        String blogName = "howtodoinjava.com";

        System.out.println( blogName.indexOf('j', 4) );         //9
        System.out.println( "hello world".indexOf('w', 2) );    //6
        System.out.println( "hello world".indexOf('w', 6) );    //6
        System.out.println( "hello world".indexOf('k') );       //-1
    }
}

```

程序输出：

```java
9
6
6
-1

```

学习愉快！

[Java `String`文档](https://docs.oracle.com/javase/10/docs/api/java/lang/String.html)