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

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

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

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

暴力匹配

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

    // 指針,分別指向兩個(gè)字符串
    int i = 0;
    int j = 0;
    // 保證匹配時(shí)不越界
    while (i < s1Len && j < s2Len) {
        // 第一個(gè)字符匹配上了
        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)下標(biāo),沒有為-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實(shí)現(xiàn)字符串匹配的文章就介紹到這了,更多相關(guān)java字符串匹配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Spring Boot 初始化運(yùn)行特定方法解析

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

    SpringBoot中@FeignClient 注解的作用

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

    阜新| 嘉鱼县| 连城县| 吉木乃县| 思南县| 郴州市| 大港区| 临海市| 南召县| 泰来县| 哈密市| 当阳市| 栖霞市| 顺平县| 潍坊市| 古蔺县| 女性| 威信县| 通州区| 德兴市| 阜新| 张家界市| 铜川市| 出国| 麟游县| 花垣县| 武陟县| 荥经县| 潮州市| 丹凤县| 南漳县| 南郑县| 辽宁省| 舞钢市| 高密市| 巴里| 新干县| 喀什市| 襄垣县| 石棉县| 高台县|