A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王月 于 2012-6-26 16:27 编辑

public class StringTestHome3 {
/**
  * 获取两个字符串中最大的两个子字符串
  */
public static void main(String[] args) {
  String str1="ssshellowordunn";
  String str2="sdsahellii";
  System.out.println(getString(str1,str2));
}
  public static String getString(String s1,String s2)
  {
   String str=null;
   String Max=(s1.length()>=s2.length())? s1:s2 ;
   String Min=(s1.length()<s2.length())? s1:s2;
   for(int x=0;x<Min.length();x++)
   {
    for(int y=0,z=Min.length();z<=Min.length();y++,z++)//这里用 z-- 不行吗,不是为了获取y和z中间的字符串吗,z--不是正好吗,可就是运行结果不对
    {
     String temp=Min.substring(y,z);
     if(Max.contains(temp))
     {
      str=temp;
      return temp;
     }
    }
   }
   return str;
  }

}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

4 个回复

倒序浏览
你代码写错了,第一个for循环里应该是int x=Min.length();;x>0;x--);第二个for循环里的z的初值应该等于x,
回复 使用道具 举报
没有啊,我是在用循环来获取Min字符串所有的子字符串,只有z++这里我搞不懂
回复 使用道具 举报
lz你那个for循环能获得Min内所有子串?
举个例子,min=abcdef ,你第一次得到abcdef ,第二次 就只能得到bcdef了。
或者你在for循环内部直接syso出来所有的min.substring(y,z)就可以很明显的看到错误了。
我就懒得给你写正确的代码了,不会的话好好看视频吧。相信你能搞定

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
来人解决嘛
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马