欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java 数据结构与算法系列精讲之字符串暴力匹配

时间:2022-07-19 10:17:04|栏目:JAVA代码|点击:

概述

从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章.

字符串匹配

字符串匹配 (String Matching) 指的是判断一个字符串是否包含另一个字符串.

举个例子:

  • 字符串 “Hello World” 包含字符串 “Hello”
  • 字符串 “Hello World” 不包含字符串 “LaLaLa”

暴力匹配

暴力匹配 (Brute-Force) 的思路:

  • 如果charArray1[i] == charArray2[j], 即匹配成功, i++, j++, 继续匹配下一个字符
  • 如果匹配失败, i 重置为i - (j - 1), j 重置成 0, 继续暴力匹配

暴力匹配实现

public class 暴力匹配 {

    public static int BruteForce(String str1, String str2) {

        // 将字符串转化为char数组
        char[] charArray1 = str1.toCharArray();
        char[] charArray2 = str2.toCharArray();

        // string长度
        int length1 = charArray1.length;
        int length2 = charArray2.length;

        // 调试输出
        System.out.println(charArray1);
        System.out.println(charArray2);

        int i = 0;
        int j = 0;

        while (i < length1 && j < length2) {

            // 判断是否匹配
            if (charArray1[i] == charArray2[j]) {

                // 各往后挪一位
                i++;
                j++;
            } else {

                // 重新匹配
                i = i - (j - 1);
                j = 0;
            }
        }

        // 匹配完成, 返回index
        if (j == length2) {
            return i - j;
        } else {
            return -1;
        }
    }

    public static void main(String[] args) {

        // 字符串1
        String str1 = "I am little white";

        // 字符串2
        String str2 = "white";

        // 暴力匹配
        int result = BruteForce(str1, str2);
        System.out.println(result);
    }
}

输出结果:

I am little white
white
12

上一篇:如何通过properties文件配置web.xml中的参数

栏    目:JAVA代码

下一篇:Java几个实例带你进阶升华下篇

本文标题:Java 数据结构与算法系列精讲之字符串暴力匹配

本文地址:http://www.codeinn.net/misctech/208228.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有