欢迎访问宙启技术站
智能推送

Java中字符串查找函数的实现及应用场景介绍

发布时间:2023-06-23 21:51:55

Java字符串查找函数的实现有多种,包括indexOf、lastIndexOf、startsWith、endsWith、contains等等。这些函数可以用于字符串的常用操作,包括子字符串查找、前缀/后缀匹配、字符串包含判定等。下面将对这些函数的实现和应用场景进行介绍。

一、indexOf和lastIndexOf

indexOf函数的功能是在一个字符串中查找指定的字符或字符串,并返回 次出现的位置。其函数原型为:

int indexOf(int ch)
int indexOf(int ch, int fromIndex)
int indexOf(String str)
int indexOf(String str, int fromIndex)

其中, 个函数表示查找单个字符,第二个函数表示从指定位置开始查找单个字符,第三个函数表示查找字符串,第四个函数表示从指定位置开始查找字符串。如果查找不到,返回-1。

lastIndexOf函数与indexOf类似,不同之处是它从字符串的最后面开始向前查找。

这两个函数常用于查找子字符串,例如查找字符串中是否含有某个关键字等。

二、startsWith和endsWith

startsWith函数判断一个字符串是否以指定的前缀开头,endsWith函数则判断一个字符串是否以指定的后缀结尾。它们的函数原型为:

boolean startsWith(String prefix)
boolean endsWith(String suffix)

如果符合条件返回true,否则返回false。这两个函数常用于对文件名、URL等进行判断。

三、contains

contains函数判断一个字符串是否包含指定的字符或字符串。其函数原型为:

boolean contains(CharSequence s)

如果包含返回true,否则返回false。这个函数常用于字符串匹配、检查用户输入等。

下面给出一个查找字符串中最长公共前缀的例子,代码如下:

public static String longestCommonPrefix(String[] strs) {
    if (strs == null || strs.length == 0) return "";

    String prefix = strs[0];
    for (int i = 1; i < strs.length; i++)
        while (strs[i].indexOf(prefix) != 0) {
            prefix = prefix.substring(0, prefix.length() - 1);
            if (prefix.isEmpty()) return "";
        }        
    return prefix;
}

该函数利用了indexOf函数查找字符串中是否包含指定的前缀,并通过substring函数获得子字符串。如果不包含则缩短前缀长度,直到出现最长公共前缀。

总之,Java中的字符串查找函数有很多种,可以应用于不同的场景,例如找出URL中的域名部分、查找字符串中的特定子串、检查输入是否符合要求等。熟练掌握这些函数,可以提高字符串处理的效率和精度。