资源简介
编程实现如下功能:
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写的聊天室项目
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
- java8学习教程之lambda表达式的使用方法
评论
共有 条评论