Java String lastIndexOf()方法

培训教学 潘老师 9个月前 (09-05) 247 ℃ (0) 扫码查看

String.lastIndexOf() 方法返回指定字符或子字符串的最后一个索引位置。如果参数在字符串中未找到,则该方法返回 -1。请注意,字符串的索引从零开始。

1. String.lastIndexOf() API

lastIndexOf ()方法有四种重载形式。

int lastIndexOf(String substring)
int lastIndexOf(String substring, int fromIndex)
int lastIndexOf(int ch)
int lastIndexOf(int ch, int fromIndex)

方法参数是:

  • substring或ch:要查找的子字符串或字符。
  • fromIndex:搜索从字符串中的指定位置开始。

该方法返回最后一次出现的指定子字符串的索引,如果不存在则返回 -1。

2. String.lastIndexOf()示例

在下面的Java程序中,子字符串“Java”出现了两次。当我们使用lastIndexOf()搜索字符串时,它返回最后一个“Java”字符串的位置。字母“J”存储在索引位置 41 上,我们可以通过搜索字符“J”来验证该索引位置。

String str = "Hello world Java programmers, welcome to Java world !";
Assertions.assertEquals(41, str.lastIndexOf("Java"));
Assertions.assertEquals(41, str.lastIndexOf('J'));

假设要从字符串中的特定位置搜索子字符串。例如,我们想知道单词“Java”与逗号的距离。我们可以将逗号的位置作为第二个方法参数传递。这次,在索引位置 12 处找到了“Java”。

String str = "Hello world Java programmers, welcome to Java world !";
Assertions.assertEquals(12, str.lastIndexOf("Java", str.indexOf(",")));
Assertions.assertEquals(12, str.lastIndexOf('J', str.indexOf(",")));

3.Null和空字符串

不允许向lastIndexOf()传递null参数,这将导致NullPointerException异常。

Assertions.assertThrows(NullPointerException.class, ()->{
    str.lastIndexOf(null);
});

空字符串的位置始终被认为是在字符串的末尾,并且该方法返回由String.length()计算的值。

Assertions.assertEquals(str.length(), str.lastIndexOf(""));

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/8781.html
喜欢 (1)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】