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

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

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

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

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

| 序号 | 方法语法 | 描述 |
| --- | --- |
| 1. | `int lastIndexOf(String substring)` | 返回给定`substring`的最后一个索引位置 |
| 2. | `int lastIndexOf(String substring, int fromIndex int)` | 返回给定`substring`的最后一个索引位置，从指定的`fromIndex`开始向后搜索 |
| 3. | `int lastIndexOf(int ch)` | 返回给定`char`值的最后一个索引位置 |
| 4. | `int lastIndexOf(int ch, int fromIndex)` | 返回给定`char`值的索引位置，从指定的`fromIndex`开始向后搜索 |

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

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

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

//Program output

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

```

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

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

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

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

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

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

```

程序输出。

```java
9
6
-1

```

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

Java 程序查找给定字符串对象中`substring`的最后一个索引，并使用`indexOf(String substring, int fromIndex)`方法从指定的`fromIndex`开始向后搜索。

> 请注意，找到子字符串时，索引计数仅从 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.lastIndexOf(char ch)`示例

Java 程序使用`lastIndexOf(char ch)`方法在给定的字符串对象中找到给定字符`'ch'`的最后一个索引。

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

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

```

程序输出：

```java
9
6
-1

```

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

Java 程序在给定的字符串对象中查找字符`'ch'`的最后一个索引，然后使用`lastIndexOf(String substring, int fromIndex)`方法从指定的`fromIndex`开始向后搜索。

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

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

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

```

程序输出：

```java
9
6
6
-1

```

学习愉快！

参考：

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