Java String.indexOf()

2025年03月24日 | 阅读 5 分钟

Java String 类 indexOf() 方法返回指定字符串中指定字符或字符串的第一个出现位置。

签名

Java 中有四种重载的 indexOf() 方法。indexOf() 方法的签名如下:

编号。方法描述
1int indexOf(int ch)它返回给定 char 值的索引位置。
2int indexOf(int ch, int fromIndex)它返回给定 char 值和 fromIndex 的索引位置。
3int indexOf(String substring)它返回给定子字符串的索引位置。
4int indexOf(String substring, int fromIndex)它返回给定子字符串和 fromIndex 的索引位置。

参数

ch: 这是一个字符值。

fromIndex: 返回 char 值或子字符串索引的起始索引位置。

substring: 要在此字符串中搜索的子字符串。

返回值

搜索的字符串或字符的索引。

内部实现

Java String.indexOf() 方法示例

示例

编译并运行

输出

2  8
5
3

我们注意到,当找到搜索的字符串或字符时,该方法返回一个非负值。如果找不到字符串或字符,则返回 -1。我们可以利用此属性来查找给定字符串中字符的总数。请观察以下示例。

示例

编译并运行

输出

In the String: Welcome to TpointTech
The 'o' character has come 3 times

Java String indexOf(String substring) 方法示例

该方法以子字符串作为参数,并返回子字符串第一个字符的索引。

示例

编译并运行

输出

index of substring 16

Java String.indexOf(String substring, int fromIndex) 方法示例

该方法以子字符串和索引作为参数,并返回在给定 fromIndex 之后出现的第一个字符的索引。

示例

编译并运行

输出

index of substring 16
index of substring -1

Java String indexOf(int char, int fromIndex) 方法示例

该方法以 char 和索引作为参数,并返回在给定 fromIndex 之后出现的第一个字符的索引。

示例

编译并运行

输出

index of char 17

用例

indexOf() 方法通常用于各种场景,包括:

字符串搜索: 它经常用于在较大的字符串中搜索子字符串,从而实现高效的字符串操作和解析。

验证: 可用于检查用户输入中是否存在特定字符或子字符串以进行验证。

分词: 在处理文本处理或解析时,indexOf 可以帮助定位字符串中的分隔符或标记。

替换子字符串: 通过定位其索引,它可以帮助将字符串中的特定子字符串替换为其他子字符串。

高级用法和最佳实践

区分大小写: 默认情况下,indexOf() 方法区分大小写。如果我们想要不区分大小写的搜索,可以在执行搜索之前,使用 toLowerCase()(或 toUpperCase())将字符串和子字符串都转换为小写(或大写)。

处理 Unicode 字符: Java 支持 Unicode 字符。处理 Unicode 字符时,请注意 indexOf() 方法使用 UTF-16 代码单元。这意味着补充字符(代码点大于 \uFFFF 的字符)可能占用两个 char 值。在这种情况下,我们可能需要使用 codePointAt() 方法结合 indexOf() 来获得准确的结果。

有时,我们可能只需要检查一个子字符串是否存在于另一个字符串中,而不必查找其位置。在这种情况下,indexOf() 方法仍然有用。如果返回的索引大于或等于 0,则表示该子字符串存在于字符串中。

查找所有出现: 如果您需要查找字符串中子字符串的所有出现,可以使用循环和 indexOf() 方法,并更新 fromIndex 参数来搜索后续的出现。

高效的字符串操作

indexOf() 方法在各种字符串操作任务中至关重要。

子字符串提取: 一旦我们找到子字符串的索引,就可以使用 substring 方法轻松提取子字符串。

替换子字符串: 我们可以使用 replace 方法结合 indexOf() 来替换字符串中子字符串的出现。

结论

在 Java 编程中,String 类的 indexOf() 方法是搜索字符串中子字符串的强大工具。它的简单性和灵活性使其在广泛的字符串操作任务中不可或缺。通过了解其用法和功能,开发人员可以在其 Java 应用程序中高效地处理字符串处理任务。无论是用于验证、搜索还是分词,indexOf() 都被证明是 Java 程序员工具箱中一个通用且必不可少的方法。


下一主题Java String intern