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

© 孙国军 中级黑马   /  2012-4-14 15:25  /  1510 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Demo
  2. {
  3. public static void main(String[] args)
  4. {
  5. String str=" abcdefabc ";
  6. String st="baafab";
  7. String s="s";
  8. System.out.println(method_getMax(str,st));
  9. System.out.println(method_getMax(str,s));
  10. }
  11. //获取两个字符串中最大相同的字串;
  12. public static String method_getMax(String str,String s)
  13. {
  14. String max="",min="";

  15. //判断哪个字符串长一些;
  16. max=(str.length()>s.length())?str:s;
  17. min=(max==str)?s:str;

  18. //通过for循环比较.并取出最大的相同字串
  19. for (int i=0;i<=min.length() ;i++ )
  20. {
  21. for (int j=0,k=min.length()-i;k<min.length()+1 ;j++,k++ )
  22. {
  23. String temp=min.substring(j,k);
  24. if (max.contains(temp))
  25. {
  26. return temp;
  27. }
  28. }
  29. }
  30. //如果没有,则告诉用户没有相同的字符串;
  31. return "没有相同的子串";                                                                   //这边return返回的值问世么没有打印啊????
  32. }

  33. }
复制代码

3 个回复

倒序浏览
  1. class  Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String str="   abcdefabc    ";
  6.                 String st="baafab";
  7.                 String s="s";
  8.                 System.out.println(method_getMax(str,st));
  9.                 System.out.println(method_getMax(str,s));
  10.         }
  11.         //获取两个字符串中最大相同的字串;
  12.         public static String method_getMax(String str,String s)
  13.         {
  14.                 String max="",min="";

  15.                 //判断哪个字符串长一些;
  16.                 max=(str.length()>s.length())?str:s;
  17.                 min=(max==str)?s:str;

  18.                 //通过for循环比较.并取出最大的相同字串
  19.                 for (int i=0;i<=min.length() ;i++ )
  20.                 {
  21.                         for (int j=0,k=min.length()-i;k<min.length()+1 ;j++,k++ )
  22.                         {
  23.                                 String temp=min.substring(j,k);
  24.                                 if (max.contains(temp))
  25.                                 {
  26.                                         return temp;
  27.                                 }
  28.                         }
  29.                 }
  30.                 //如果没有,则告诉用户没有相同的字符串;
  31.                 return "没有相同的子串";            //这边return返回的值问世么没有打印啊????
  32.         }

  33. }
复制代码
回复 使用道具 举报
//这边return返回的值问世么没有打印啊????

回复 使用道具 举报
for (int i=0;i<=min.length() ;i++ )   //(这里的<=改成<)(要不然subString(0,0)返回的值是一个空,不走return)

22.                {

23.                        for (int j=0,k=min.length()-i;k<min.length()+1 ;j++,k++ )

24.                        {

25.                                String temp=min.substring(j,k);

26.                                if (max.contains(temp))

27.                                {

28.                                        return temp;

29.                                }

30.                        }

31.                }

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
贠(yun)靖 + 1
孙国军 + 3

查看全部评分

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