下面的内容要给大家分享的是和手写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 < s1.length; i++) { boolean flag = false; for (int offset = 0; offset < s2.length; 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 < 50; 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工具网来进行了解吧。
推荐阅读: