最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)字符串匹配的示例代碼

 更新時間:2022年04月25日 09:04:44   作者:CoderDreams  
這篇文章主要介紹了Java實現(xiàn)字符串匹配,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

java實現(xiàn)字符串匹配

暴力匹配

/**
 * 暴力匹配
 *
 * @param str1 需要找的總字符串
 * @param str2 需要找到的字符串
 * @return 找到的字符串的下標
 */
private static int violence(String str1, String str2) {
    char[] s1 = str1.toCharArray();
    char[] s2 = str2.toCharArray();
    int s1Len = s1.length;
    int s2Len = s2.length;

    // 指針,分別指向兩個字符串
    int i = 0;
    int j = 0;
    // 保證匹配時不越界
    while (i < s1Len && j < s2Len) {
        // 第一個字符匹配上了
        if (s1[i] == s2[j]) {
            ++i;
            ++j;
        } else {
            i -= (j - 1);
            j = 0;
        }
    }
    // 判斷是否成功
    if (j == s2Len) {
        return i - j;
    } else {
        return -1;
}

KMP算法

/**
 * KMP算法
 *
 * @param str1 源字符串
 * @param str2 子串
 * @param next 匹配值表
 * @return 對應(yīng)下標,沒有為-1
 */
private static int kmp(String str1, String str2, int[] next) {
    for (int i = 0, j = 0; i < str1.length(); ++i) {

        while (j > 0 && str1.charAt(i) != str2.charAt(j)) {
            j = next[j - 1];
        }
        if (str1.charAt(i) == str2.charAt(j)) {
            j++;
        if (j == str2.length()) {
            return i - j + 1;
    }
    return -1;
}
 * @return dest的部分匹配表
private static int[] getkmpNext(String dest) {
    int length = dest.length();
    int[] next = new int[length];
    next[0] = 0;
    for (int i = 1, j = 0; i < length; i++) {
        while (j > 0 && dest.charAt(i) != dest.charAt(j)) {
        if (dest.charAt(i) == dest.charAt(j)) {
        next[i] = j;
    return next;

到此這篇關(guān)于Java實現(xiàn)字符串匹配的文章就介紹到這了,更多相關(guān)java字符串匹配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • SpringBoot項目中通過@Value給參數(shù)賦值失敗的解決方案

    SpringBoot項目中通過@Value給參數(shù)賦值失敗的解決方案

    springboot項目中通過@Value給屬性附值失敗,給參數(shù)賦值失敗,打印為空值,文中通過代碼示例給大家介紹的非常詳細,對大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • Java中List集合數(shù)據(jù)修改方式

    Java中List集合數(shù)據(jù)修改方式

    這篇文章主要介紹了Java中List集合數(shù)據(jù)修改方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java掃描文件夾下所有文件名

    Java掃描文件夾下所有文件名

    這篇文章主要為大家詳細介紹了Java掃描文件夾下所有文件名,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • springboot 配置文件里部分配置未生效的解決

    springboot 配置文件里部分配置未生效的解決

    springboot 配置文件里部分配置未生效的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 十分簡單易懂的Java應(yīng)用程序性能調(diào)優(yōu)技巧分享

    十分簡單易懂的Java應(yīng)用程序性能調(diào)優(yōu)技巧分享

    這篇文章主要介紹了十分簡單易懂的Java性能調(diào)優(yōu)技巧分享,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • String類型轉(zhuǎn)localDate,date轉(zhuǎn)localDate的實現(xiàn)代碼

    String類型轉(zhuǎn)localDate,date轉(zhuǎn)localDate的實現(xiàn)代碼

    這篇文章主要介紹了String類型轉(zhuǎn)localDate,date轉(zhuǎn)localDate的實現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • spring boot 使用Aop通知打印控制器請求報文和返回報文問題

    spring boot 使用Aop通知打印控制器請求報文和返回報文問題

    這篇文章主要介紹了spring-boot 使用Aop通知打印控制器請求報文和返回報文,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • Spring Boot 初始化運行特定方法解析

    Spring Boot 初始化運行特定方法解析

    這篇文章主要介紹了Spring Boot 初始化運行特定方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • SpringBoot中@FeignClient 注解的作用

    SpringBoot中@FeignClient 注解的作用

    Feign可以幫助我們定義和實現(xiàn)服務(wù)之間的 RESTful 接口,使得服務(wù)之間的調(diào)用更加方便和可靠,本文主要介紹了SpringBoot中@FeignClient 注解的作用,感興趣的可以了解一下
    2024-06-06
  • 最新評論

    安丘市| 蒙城县| 托克逊县| 定州市| 监利县| 沙洋县| 天津市| 临沧市| 沭阳县| 禄丰县| 阜南县| 江都市| 登封市| 安徽省| 马尔康县| 瑞金市| 衡阳县| 南宫市| 漳州市| 永川市| 大化| 永济市| 观塘区| 牙克石市| 广德县| 宜春市| 房产| 红桥区| 犍为县| 邛崃市| 溧水县| 东丰县| 南部县| 福泉市| 九龙县| 山阴县| 日喀则市| 洞口县| 织金县| 敦化市| 宽甸|