黑马程序员技术交流社区

标题: 找出两字符串的最大子字符串(实现) [打印本页]

作者: ganjx    时间: 2015-10-3 10:35
标题: 找出两字符串的最大子字符串(实现)
本帖最后由 ganjx 于 2015-10-3 10:38 编辑
  1. <div class="blockcode"><blockquote>class TestFindMaxStringDemo
  2. {
  3.         public static void main(String [] args)
  4.         {
  5.                 TestFindMaxString("dsjiafjdifjaosf","jsfjdifjf");//
  6.         }
  7.         
  8.         public static void TestFindMaxString(String str1,String str2)
  9.         {
  10.                 //int max  = getMaxlength(str1,str2);
  11.                 //取出最短的字符串长度
  12.                 int min  = getMinlength(str1,str2);
  13.                 //取出最长的字符串
  14.                 String maxString  = ((str1.length()>str2.length())?str1:str2);
  15.                 //取出最短的字符串
  16.                 String minString  = ((str1.length()>str2.length())?str2:str1);
  17.                 String temp="";
  18.      /*
  19.                 for(int len=min;len>0;len-- )//假设字符串的长度
  20.                 {
  21.                         for(int pos=0;pos+len<min;pos++)//不能越界
  22.                         {
  23.                                 temp=minString.substring(pos,len+pos);
  24.                                 if(maxString.indexOf(temp)!=-1)
  25.                                 {
  26.                                        
  27.                                         System.out.println(temp);
  28.                                         //return temp;//取出最大字符串,但当有多个长度一样时只能取出一个
  29.                                 }
  30.                         }
  31.                 }
  32.                 */<
  33.                 boolean flag=false;
  34.                 for(int len=min;len>0;len-- )//假设字符串的长度
  35.                 {
  36.                         if(flag)
  37.                                 break;
  38.                                 
  39.                         for(int pos=0;pos+len<min;pos++)//不能越界
  40.                         {
  41.                                 temp=minString.substring(pos,len+pos);
  42.                                 if(maxString.indexOf(temp)!=-1)
  43.                                 {
  44.                                         flag=true;
  45.                                         System.out.println(temp);
  46.                                 }
  47.                         }
  48.                 }

  49.         }
  50.         /*
  51.         取出两字符串的最长
  52.         **/
  53.         public static int getMaxlength(String str1,String str2)
  54.         {
  55.                 return (str1.length()>str2.length())?str1.length():str2.length();
  56.         }
  57.         /*
  58.         取出两字符串的最短
  59.         **/
  60.         public static int getMinlength(String str1,String str2)
  61.         {
  62.                 return (str1.length()>str2.length())?str2.length():str1.length();
  63.         }
  64. }
复制代码


1111.png (9.68 KB, 下载次数: 8)

1111.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2