ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

求两字符串公共子串的java实现

2019-10-26 13:41:11  阅读:294  来源: 互联网

标签:子串 java String scan System totest maxlen 字符串 out


`

求两字符串公共子串的java实现

`public class totest{
public String getsubString(String s,int a,int b) {
	String s1=new String();
	if(s.length()<a+b-1) {
		for(int i=0;i<s.length()-a+1;i++) {
			s1=s1+s.charAt(a+i-1);
		}
	}else {
	for(int i=0;i<b;i++) {
		s1=s1+s.charAt(a+i-1);
	}
	}
	return s1;
}
public String getString (String s1,String s2) {
	String s3=new String();
	int array[][]=new int[s1.length()][s2.length()];
	int maxlen=0;int maxend=0;
	for(int i=0;i<s1.length();i++) {
		for(int j=0;j<s2.length();j++) {
			if(s1.charAt(i)==s2.charAt(j)) {
				if(i==0||j==0) {
					array[i][j]=1;
				}else {
					array[i][j]=array[i-1][j-1]+1;
				}
			}else {
				array[i][j]=0;
			}
			if(array[i][j]>maxlen) {
				maxlen=array[i][j];
				maxend=i;
			}
		}
	}
	s3=getsubString(s1,maxend-maxlen+2,maxlen);
	return s3;
}
public static void main(String args[]) {
	Scanner scan=new Scanner(System.in);
	totest test=new totest();
	System.out.println("请输入字符串1");
	String s=scan.next();
	System.out.println("请输入字符串2");
	String a=scan.next();
	System.out.println("结果为:"+test.getString(s, a));
	
  }
}

str.charAt[i]方法在定位时从0开始,所以求子串时会+1。

标签:子串,java,String,scan,System,totest,maxlen,字符串,out
来源: https://blog.csdn.net/qq_44428409/article/details/102755483

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有