java中如何实现 A= abcd ; B = bcdefg ; 求字符串中连续重复的字符串最多的个数

补充一下:意思是两个字符串A="abcd";B="bcdefg";求其中相同的字符串。若有多个相同的字符串则只打印输出“相同字符串中最长的”那个字符串。... 补充一下:意思是两个字符串
A = "abcd ";
B = "bcdefg";
求其中相同的字符串。若有多个相同的字符串则只打印输出“相同字符串中最长的”那个字符串。
展开
 我来答
白虎星星
2012-09-26
知道答主
回答量:8
采纳率:0%
帮助的人:5495
展开全部
现在给出我的方法。虽然代码没有经过优化,但是非常容易理解。
public void test8()//不确定位置比较匹配
{String a="afdasagatadf",b="asdfagfgafdgsdhgsadfadsfasagat";
String t="";
int max=0;
List list1=new ArrayList();
List list2=new ArrayList();
List list3=new ArrayList();
if(a.length()>b.length())
{t=a;
a=b;
b=t;
}
for(int i=1;i<=a.length();i++)//将所有的单个的或多个字符串取出来放入list中
{for(int j=0;j<=a.length()-i;j++)
{list1.add(a.substring(j, j+i));
}
for(int k=0;k<=b.length()-i;k++)
{ list2.add(b.substring(k, k+i));
}
}
for(Iterator it=list1.iterator();it.hasNext();)
{String aa=(String)it.next();
for(Iterator it1=list2.iterator();it1.hasNext();)
{String bb=(String)it1.next();
if(aa.length()==bb.length()&&aa.equals(bb))
{list3.add(aa);

}
}
}
for(Iterator it=list3.iterator();it.hasNext();)//将最大的字串取出来
{String str=(String)it.next();
if(max<str.length())
{
max=str.length();
}}
for(Iterator it1=list3.iterator();it1.hasNext();)//输出来这个最大字串
{
String str=(String)it1.next();
if(max==str.length())
{
System.out.println(max+" :"+str);
}
}
}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weilongks
2010-11-06 · TA获得超过161个赞
知道小有建树答主
回答量:63
采纳率:0%
帮助的人:95.6万
展开全部
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
String ss = "abbcccd";
System.out.println(getLenth(ss));
}

public static int getLenth(String str) {
if (str == null || "".equals(str)) {
return 0;
}
char[] b = str.toCharArray();
int total = 0;
int temTotal = 0;
char temp = str.charAt(0);
for (char c : b) {
if (temp == c) {
temTotal++;
} else {
temp = c;
temTotal = 1;
}
if (temTotal > total) {
total = temTotal;
}
}
return total;
}

}

运行结果:3
看看这样符合你的要求把
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
那山那夜那水
2010-11-06
知道答主
回答量:32
采纳率:0%
帮助的人:24.9万
展开全部
public void XiangtongStr(){
String str1 = "abcdegggfg";
String str2 = "hiabcuudeygggggklu";
String arr1[] = new String[str1.length()];
String arr2[] = new String[str2.length()];
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
List<String> totlelist = new ArrayList<String>();
int j=0;
int i=0;
for(;i<str1.length();){
arr1[i]=str1.substring(j,i+1);
list1.add(arr1[i]);
i++;
if(j==str1.length()-1){
break;
}
if(i==str1.length()){
j++;
i=j;
}

}
j=0;
i=0;
for(;i<str2.length();){
arr2[i]=str2.substring(j,i+1);
list2.add(arr2[i]);
i++;
if(j==str2.length()-1){
break;
}
if(i==str2.length()){
j++;
i=j;
}

}
for(String strr1:list1){
for(String strr2:list2){
if(strr1.equals(strr2)){
totlelist.add(strr1);
}
}
}
String myStr = totlelist.get(0);
for(i=0;i<totlelist.size();i++){
if(totlelist.get(i).length()>myStr.length()){
myStr = totlelist.get(i);
}
}
System.out.println(myStr);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式