实现思路:首先分别设置两个变量t和i标记字符串num和字符串target的当前位置,然后遍历num字符串,若当前的num字符串的字符等于target字符串中的首字符则继续遍历target字符串,若不相等时则将i置为0意味着重新遍历target字符串。若成功将target字符串检验完毕,则返回t-i(这个是num字符串中target字符串第一个字符位置),如果最终判断不含有target字符串则进行打印信息并返回0.
public class TEST {
public static void main(String[] args) {
String a="world|world|hello|cjw";
String c="hello";
String b="cjw";
String d="well";
System.out.println(Indexof(a,b));
System.out.println(Indexof(a,d));
}
public static int Indexof(String num,String target){
int count=0;
//使用t标记字符串num的位置
//使用i标记target字符串的位置
int t=0;
int i=0;
//遍历num字符串,并进行判断
while(t<num.length()){
if(target.charAt(i)==num.charAt(t)){
t++;
i++;
//若目标字符串已经遍历完毕则目标字符串在原字串
//中的位置就是t-i
if(i==target.length()-1){
count=t-i;
return count;
}
}
//如果当前两个字符不相等则继续遍历num字符串,并将i清空
else if(target.charAt(i)!=num.charAt(t)){
t++;
i=0;
}
}
System.out.println("该字符串中不含有目标字符串因此返回0");
return 0;
}
}
运行结果如下:
如有不足还请指出,谢谢!