从两个字符串中找出最大公共子字符串

编程之家收集整理的这篇文章主要介绍了从两个字符串中找出最大公共子字符串编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

搜索热词

从两个字符串(str_1,str_2)中找出最大公共子字符串(comString)的方法为:

  1. 选取长度较短的字符串(假设str_1较短)做截取
  2. 从字符串中截取长度为1的子字符串;
  3. 每个子字符串都在str_2中做查询查询到则将该字符串赋予comString;
  4. 从字符串中截取长度为2的子字符串,重复3;
  5. 从字符串中截取长度为n的子字符串,重复3;
  6. 结束。

截取字符串例子:

字符串截取

实例:

[Java]
/**
 * create by lijiaman on 2016-09-24
 * 题目:求两个字符串的最大公共子字符串
 * 思路:将短的字符串从短到长做字符串截取截取结果与另一个字符串做查询,如果查询到,默认为公共字符串。
*/

package com.company;

public class Main
{
    static void main(String[] args)
    {
        String str_1="abcdefghijk";
        String str_2="abcdfghabcdef";
        commonString(str_1,str_2);
    }

    static   commonString(String str_1,String str_2)
    {
        String comString="";  //用于存放公共字符串
        String childString="";  存放拆分得到的子字符串
        String minString=str_1.length()<str_2.length()?str_1:str_2;  选取短的字符串做拆分
        System.out.println(minString);
        for(int i=1;i<=minString.length();i++)
            int j=0;j<minString.length();j++)
            {
                if(j+i<=minString.length())
                {
                    childString = minString.substring(j,j + i);
                    if (str_2.indexOf(childString) != -1)  如果不等于-1,则表示在str_2里面找到childString
                        comString = childString;
                }
            }
        System.out.println(comString);
    }
}

结果为:

comString

总结

以上是编程之家为你收集整理的从两个字符串中找出最大公共子字符串全部内容,希望文章能够帮你解决从两个字符串中找出最大公共子字符串所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群:1065694478(已满)
编程之家官方2群:163560250(已满)
编程之家官方3群:312128206

相关文章

猜你在找的Java相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程:是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的 资源。 虽然系统是把资源
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、对象与内存分析5、封装性6、构造方法7、this关键字8、值传递与引用
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域正常运行的情况,称之为异常。 二、异常体系 Java把异常当作对象来处理,并定义一个基类java.
//Map的四种遍历方法 //Map不能直接遍历 ,只能通过遍历Key与Value间接遍历 public static void main(String[] args) { Map&lt;String
一,抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常。下面它们之间的异同。 (1)、系统自动抛异常 1.当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出
Jdk 频繁更新,新特性了解吗?每次更新都注重提高生产效率,提高 JVM 性能,推行模块化等,让开发者可以更多的专注于业务本身,而不是浪费过多的时间在语言特性上。Java 语言的更新要在语言的严谨性和
Java 12 早在 2019 年 3 月 19 日发布,这些新特性你知道吗