资源简介
编程实现如下功能:
1、在实验六的基础上,实现串的Brute-Force模式匹配算法。
2、尝试实现串的KMP模式匹配算法。
代码片段和文件信息
/**
* 串的操作实验二:BF算法、KMP算法
*/
package string;
import java.util.Scanner;
/**
* @author 朱宇婧2017302330020
* 2018年11月1日 上午9:40:08
*/
public class SeqString{
private char[] strvalue;//字符数组,存放串值
private int curlen;//当前串的长度
/**
* 构造方法,以字符串常量构造串对象
*/
public SeqString(String str) {
if (str != null) {
char[] tempchararray = str.toCharArray();
strvalue = tempchararray;
curlen = tempchararray.length;
}
}
/**
* 返回字符串长度
* @return
*/
public int length() {
return curlen; //区别: strvalue.length是数组容量
}
/**
* 返回字符串中序号为index的字符
* @param index
* @return
*/
public char charAt(int index) {
if ((index < 0) || (index >= curlen)) {
throw new StringIndexOutOfBoundsException(index);
}
return strvalue[index];
}
/**
* 实现BF算法
* @param target
* @param pattern
* @return
*/
public static int BF(SeqString target SeqString pattern) {
int index = 0;
int i = 0 j = 0;
char[] array1 = target.strvalue;
char[] array2 = pattern.strvalue;
while(i < array1.length && j < array2.length) {
if(array1[i] == array2[j]) {
i++;
j++;
} else {
index++;
i = index;
j = 0;
}
}
if(j == array2.length) {
return (index+1);//位置要+1
}
return -1;
}
/**
* KMP算法
* @param target
* @param pattren
* @param next
* @return
*/
public static int KMP(SeqString target SeqString pattern int[] next){
for(int i = 0 j = 0; i < target.length(); i++){
while(j > 0 && target.charAt(i) != pattern.charAt(j)){
j = next[j
- 上一篇:数据结构-二叉树Java实现
- 下一篇:java写的聊天室项目
相关资源
- 详解docker镜像centos7配置Java运行环境
- java笔试题大全java笔试,面试笔试,逻
- Windows bat 设置Java环境变量
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
评论
共有 条评论