java中如何实现 A= abcd ; B = bcdefg ; 求字符串中连续重复的字符串最多的个数
补充一下:意思是两个字符串A="abcd";B="bcdefg";求其中相同的字符串。若有多个相同的字符串则只打印输出“相同字符串中最长的”那个字符串。...
补充一下:意思是两个字符串
A = "abcd ";
B = "bcdefg";
求其中相同的字符串。若有多个相同的字符串则只打印输出“相同字符串中最长的”那个字符串。 展开
A = "abcd ";
B = "bcdefg";
求其中相同的字符串。若有多个相同的字符串则只打印输出“相同字符串中最长的”那个字符串。 展开
3个回答
展开全部
现在给出我的方法。虽然代码没有经过优化,但是非常容易理解。
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);
}
}
}}
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);
}
}
}}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
看看这样符合你的要求把
/**
* @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
看看这样符合你的要求把
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询