Java中获取两个字符串中最大相同的子串,判断字符串是在字符串中出现的次数

判断字符串是在字符串中出现的次数

    public static int getCount(String mainStr, String subStr){
        //原字符串的长度
        int mainLen = mainStr.length();
        //判断的字符串长度
        int subLen = subStr.length();
        int count = 0;
        int index = 0;
        if(mainLen >= subLen){
              //方式一 
//            while ((index = mainStr.indexOf(subStr)) != -1){
//                count++;
//                mainStr = mainStr.substring(index + subStr.length());
//            }
            //方式二
            while ((index = mainStr.indexOf(subStr,index)) != -1){
                count++;
                index  += subLen;
            }
            return count;
        }
        return 0;
    }

获取两个字符串中最大相同的子串,比如:abdafafaggaifjoaf和fasrajo

注意: 在网上看到很多博客都没有做判断,如:出现多个最大相同的子串!!!

public static List getMaxSameString(String str1, String str2){
    if(str1 != null && str2 != null){
        List list = new ArrayList();
        String maxStr = (str1.length() >= str2.length())?str1:str2;
        String minStr = (str1.length() < str2.length())?str1:str2;
        int minLen = minStr.length();

        //拿字符串少的去和多的比较
        for (int i = 0; i < minLen; i++){

            for (int x = 0,y = minLen - i;y <= minLen;x++, y++){
                String subStr = minStr.substring(x, y);
                if(maxStr.contains(subStr)){
                    list.add(subStr);
                }
            }
            if (!list.isEmpty()){
                break;
            }
        }
        return list;
    }
    return null;
}
发布了67 篇原创文章 · 获赞 19 · 访问量 9877

猜你喜欢

转载自blog.csdn.net/qq_41530004/article/details/103597411