下面的内容要给大家分享的是和手写java字符串简单匹配方法IndexOf()相关的内容,具体的一起来看一下下文吧。
简单的字符串模式匹配算法,可以使用KMP进行优化。/**
* @param s1 母串
* @param s2 子串
* @return
*/
public static int myIndexOf(String str1, String str2)
{
int pos = -1;
int index = 0;
char[] s1 = str1.toCharArray();
char[] s2 = str2.toCharArray();
if (str2.length() > str1.length() || str2.length() == 0)
{
return -1;
}
/**
* offset 偏移量,注意不要越界也可以
*/
for (int i = 0; i
{
boolean flag = false;
for (int offset = 0; offset
{
if (i + offset >= s1.length || s1[i + offset] != s2[offset])
{
flag = true;
}
}
if (flag == false)
{
pos = i;
break;
}
}
return pos;
}
使用随机数类生成一个Long和Int数据进行测试。
并和java的方法进行对比。public static void main(String[] args)
{
for (int i = 1; i
{
String str1 = new String(new Long(new Random()
.nextLong())
.toString());
String str2 = new String(new Long(new Random()
.nextInt(100))
.toString());
System.out.println(str1);
System.out.println(str2);
System.out.println("String的----------------:" + str1.indexOf(str2));
System.out.println("我的 ----------------:" + myIndexOf(str1, str2));
}
}
输出
以上的内容你都清楚了吧,更多java程序代码例子,请多多的关注奇Q工具网来进行了解吧。
推荐阅读: