黑马程序员技术交流社区

标题: java基础知识求解 [打印本页]

作者: 521123270    时间: 2015-4-17 15:15
标题: java基础知识求解
下面代码哪里出问题了?请大神指出下 谢谢!!


*
* 3,两个字符串中最大相同的子串。
* "qwerabcdyuiop"
* "xcabcdvbn"
*
* 思路:
* 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。
* 如果存在,短的那个字符串就是最大子串。
* 2,如果不是呢?那么就将短的那个子串进行长度递减的方式去找子串,去长串中判断是否存在。
* 如果存在就已找到,就不用在找了。
*/
public class StringTest_3 {
/**
  * @param args
  */
public static void main(String[] args) {
  String s1 = "qwerabcdyuiop";
  String s2 = "xcabcdvbn";
  
  String s = getMaxSubstring(s1,s2);
  System.out.println("s="+s);
}
/**
  * 获取最大子串。
  * @param s1
  * @param s2
  * @return
  */
@SuppressWarnings("unused")
public static String getMaxSubstring(String s1, String s2) {

  for (int i = 0; i < s2.length(); i++) {   
   
   for(int a = 0,b = s2.length()-i; b != s2.length()+1; a++,b++){
    String sub = s2.substring(a,b);
   
//    System.out.println(sub);
    if(s1.contains(sub));
     return sub;
   }
      
  }
  return null;
}
}


作者: 刘氓爱上冰    时间: 2015-4-17 15:19
我还没有学到这
作者: 我想努力半年    时间: 2015-4-17 15:22
这道练习我也做过,看了好久没看出问题啊。。。
作者: jackwang    时间: 2015-4-17 16:07
if(s1.contains(sub)); //这条语句后面多了一个分号!去掉分号就对了
             return sub;

作者: lily15    时间: 2015-4-17 16:28
public static String getMaxSubstring(String s1,String s2)
   {
           for (int i = 0; i < s2.length(); i++)
                {   
                        for(int a = 0,b = s2.length()-i;b<s2.length()&&b-a==s2.length()-i; a++,b++)
                        {
                                String sub = s2.substring(a,b);
                                System.out.println(sub);
                                if(s1.contains(sub))
                                        return sub;
                        }
                }
                return null;
      
    }
作者: 521123270    时间: 2015-4-18 08:46
刘氓爱上冰 发表于 2015-4-17 15:19
我还没有学到这

:P技术分那么多!
作者: 521123270    时间: 2015-4-18 08:49
jackwang 发表于 2015-4-17 16:07
if(s1.contains(sub)); //这条语句后面多了一个分号!去掉分号就对了
             return sub;
...

嗯嗯!老手就是老手!请问你学了多久了?{:3_46:}
作者: 521123270    时间: 2015-4-18 08:53
lily15 发表于 2015-4-17 16:28
public static String getMaxSubstring(String s1,String s2)
   {
           for (int i = 0; i < s2.length();  ...

嗯嗯!对




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