JAVA 返回两字符串的最大公共字符串

/*
 本题的解题思路为拿小的字符串依次缩减长度与大的字符串进行比较
 重点:遍历循环,条件判断
 */

public class StringDemo {
    public static void main(String[] args) {
        StringDemo sd = new StringDemo();
        String result = sd.getString("abcwertasddhellodjgkadf","cjdfhellofdsf");
        System.out.println(result);
    }

    public String getString(String str1,String str2){
        if(str1 != null && str2 != null){
            //此处判断两字符串的大小关系
            String bigger = (str1.length() >= str2.length()? str1:str2);
            String smaller = (str1.length() < str2.length()? str1:str2);

            //声明小的字符串的长度方便后面使用
            int length = smaller.length();

            //大循环:进行n次, n = length,直到将整个小字符串遍历完成
            for(int i = 0; i < length; i++){
                //小循环:将整个小字符串向中间缩减,x每次+1,y每次-1
                for(int x = 0, y = length-i; y <= length;x++,y++ ){
                    String subStr = smaller.substring(x,y);
                    if(bigger.contains(subStr)){
                        return subStr;
                    }
                }
            }
        }
        return null;
    }
}

返回结果

hello
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。