Java String indexOf()方法

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

学习使用String.indexOf()方法查找给定字符串中字符或子字符串的位置。indexOf ()是查找子字符串的标准方法,几乎​​所有编程语言都可以使用indexOf()方法。

如果我们不需要子字符串的位置,而只想验证子字符串是否存在,那么请考虑使用String.contains() API。

String.indexOf() API

字符串的 indexOf() 方法在 Java 中用于返回指定字符或字符串的索引位置。indexOf() 方法是一个重载方法,它接受两个参数:

  • substring 或 ch:需要在当前字符串中查找的子字符串或字符。
  • fromIndex:搜索的起始位置,即在当前字符串中开始查找的索引位置。
int indexOf(String substring)
int indexOf(String substring, int fromIndex)
int indexOf(int ch)
int indexOf(int ch, int fromIndex)

如果在字符串中找不到参数字符或子字符串,则该方法返回-1

2. String.indexOf()示例

让我们看几个例子来更好地理解indexOf()。

2.1. 查找子串位置

在下面的示例中,我们检查给定字符串中是否存在子字符串 “World”。如果存在,子字符串在哪个索引位置出现呢?

子字符串位于索引位置6,indexOf() 方法返回值为6。

String str = "Hello World";
Assertions.assertEquals(6, str.indexOf("World"));

2.2. 从索引中查找子字符串

在某些情况下,我们可能想要定位子字符串,但仅在一定数量的字符之后。在这种情况下,我们可以传递第二个参数fromIndex来跳过指定数量的字符,然后从子字符串或字符开始搜索。

在下面的示例中,字符“o”出现在索引位置 4 和 7 处。假设我们必须跳过前 5 个字符,然后只能搜索字符“o”。正如预期的那样,indexOf()方法返回 7,因为这是字符“o”在索引位置 5 之后第一次出现。

Assertions.assertEquals(7, str.indexOf('o', 5));

3. 不允许NULL

不允许传递null参数,这将导致NullPointerException。

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

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

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

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