给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
public static void main(String[] args) {
System.out.println(test("mississippi","issipi"));
System.out.println(test("mississippi","issippi"));
System.out.println(test("mississippi",""));
System.out.println(test("mississippi","missss"));
System.out.println(test("mississippi","miss"));
}
test实现`
private static int test(String value1,String value2){
byte[] valueArr = value1.getBytes();
byte[] targetArr = value2.getBytes();
int offset = -1;
if(targetArr.length==0){
return 0;
}
loop:
for (int i = 0; i <= valueArr.length - targetArr.length; i++) {
for (int j = 0; j < targetArr.length; j++) {
if (valueArr[i + j] == targetArr[j]) {
offset=i;
if(j==targetArr.length-1){
break loop;
};
} else {
offset=-1;
break;
}
}
}
return offset;
}
简单测试了下没啥问题,不敢保证百分百对