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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 曹宇 于 2013-4-7 02:47 编辑



  1. /*
  2. 需求:获取两个字符串中相同的最大的子串。
  3. */

  4. class  StringTest4
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 Run r = new Run("zfebgdefiroytpqaqzc","acbgdeftklj");
  9.                 System.out.println(r.getStr());
  10.         }
  11. }

  12. class CanShuFeiFaException extends RuntimeException
  13. {
  14.         CanShuFeiFaException(String message)
  15.         {
  16.                 super(message);
  17.         }
  18. }
  19. class Run
  20. {
  21.         private String s1;
  22.         private String s2;
  23.         Run(String s1,String s2)
  24.         {
  25.                 this.s1=s1;this.s2=s2;
  26.         }

  27.         if (s1.length()==0||s2.length()==0)                  //报了8条错误,就这一句话,我不知道到底是哪里不行了。
  28.         {
  29.                 throw new CanShuFeiFaException("参数异常");
  30.         }
  31.         public String getStr()
  32.         {
  33.                 String max,min;
  34.                 if(s1.length()>=s2.length())
  35.                 {
  36.                         min=s2;
  37.                         max=s1;
  38.                 }
  39.                 else
  40.                 {        
  41.                         min=s1;
  42.                         max=s2;
  43.                 }
  44.                 int cut=0;
  45.                 int x,z;
  46.                 int leng=min.length();
  47.                 for(  ;leng>0;leng--,cut++)
  48.                 {
  49.                         
  50.                         for(x=0,z=leng-1;x<=cut;x++,z++)
  51.                         {
  52.                                 
  53.                                 
  54.                                 if (  max.contains(min.substring(x,z+1))  )
  55.                                 {
  56.                                         return min.substring(x,z+1);
  57.                                 }
  58.                         }

  59.                 }
  60.                 return "No find";
  61.         
  62.         
  63.         }



  64. }
复制代码




为什么呢?

就看33行就行了。

还望高手解答,实在是十分的疑惑啊。完全搞不懂了。。

谢谢了!

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

3 个回复

正序浏览
学习学习!
回复 使用道具 举报
騛鹏 发表于 2013-4-7 02:32

恩,谢谢,简洁易懂。
我明白了,原来if不能再成员变量的位置上,只能处于方法中,真是太疏忽大意了。

谢谢你了!
回复 使用道具 举报

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

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