Java 串匹配Brute Force算法
每天基础(1),串匹配之Brute-Force算法,最简单的遍历算法。另外有KMP算法,是对此算法的改进,避免每次比较都回回退。
package ibees.sample;
/**
* 字符串匹配模式算法Brute-Force算法,此算法每次比较都会回退
* @author hhzxj2008
* */
public class StringMatch {
/**
* 相当于java.lang.String的indexOf,采用Brute-Force算法
* */
public int match(String str,String substr){
//1.字串的第一字符与主串的第一个字符比较,若不匹配字串的第一个字符和主串的第二个字符比较
//2.若字串的第一个字符与主串的某一位置上字符串匹配,则将字串的第二个字符与主串该位的下一位置
// 进行比较,依次类推。遇到不相等,则重复第一步。
int index = -1;
boolean match = true;
for(int i = 0; i <= str.length()-substr.length(); i ++){//str
match = true;
for(int j = 0; j < substr.length(); j ++){//substr
if(str.charAt(i+j) != substr.charAt(j)){
match = false;
}
}
if(match){
index = i;
break;
}
}
return index;
}
}
KMP算法主要考虑在比较的过程中存在部分匹配,所以不用每次都回退。这里不作具体的介绍。
相关文档:
原发表于http://saharabear.javaeye.com
和http://www.haulynjason.net(英)
同时发表在这里.
在我周围,有很多人是Java程序员或者计算机专业的学生.有时,我帮他们调试程序的时候,发现他们的机器上总是安装着很多没有授权的工具,比如盗版的
windows,没有License的MyEclipse等,甚至有一些人分不清eclipse和myeclipse ......
大家好!
我是一个编程爱好者。
经过专业课的学习,有一定的编程基础,对C/C++、ASP.ENT以及数据库比较熟悉。
现在,我在一个Java培训班学习。
空闲之余,在这里找到了一个交流的平台, ......
java的基本数据类型以及长度如下:
1.整数型
字节型byte:占1个字节 范围为 -28-1至28-1-1
短整型short:占2个字节 范围为 -22*8-1 至 22*8-1-1
& ......
计算机缓存的定义 :缓存是CPU的一部分,它存在于CPU中
就此可以说明 CPU中不可能存放大量的数据
所以java 的缓存 不是真正意义上的缓存
而且
缓存是为了解决CPU速度和内存速度的速度差异问题
内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数 ......
Oracle and Sun
http://www.oracle.com/events/productstrategy/index.html
Oracle + Sun: Java Strategy
http://oracle.com.edgesuite.net/ivt/4000/8104/9236/12630/lobby_external_flash_clean_480x360/default.htm
Oracle + Sun: Java Strategy
......