java字符串匹配对应。麻烦谁帮我看看这样写代码有什么逻辑毛病么?得不到想要的结果。

对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1

输入: source = "source" , target = "target"
输出:-1	
样例解释: 如果source里没有包含target的内容,返回-1

样例 2:

输入: source = "abcdabcdefg" ,target = "bcd"
输出: 1	
样例解释: 如果source里包含target的内容,返回target在source里第一次出现的位置
public class Solution {

    public static int strStr(String source, String target) {

        String[] arr=source.split("");
        String[] abb=target.split("");
        
        for(int i=0;i<=arr.length-abb.length;i++){  
            int j=0;   
            for(;j<abb.length;j++){
                if(arr[i+j]!=abb[j])
                    {break;}
                
            }
            if(j==abb.length){
                return i;
            }
        }
        return -1;
    }

    
    public static void main(String[] args) {
        System.out.println(strStr("system","sy"));
    }
}

 

第一个字符相等时就应该用一个变量记录下来,之后继续判断

我发现了:原来是数组里包含的字符串类型要用equals来判断是否相等所以  if(arr[i+j]!=abb[j])要改成  if(!arr[i+j].equals(abb[j]))