本帖最后由 于星星 于 2012-7-18 22:24 编辑
这里楼主可能弄错了一点东西, String substring(int beginIndex, int endIndex) 是包含头不包含尾的
用集合表示就是半开半闭区间(a,b]。所以要将z=min.length的情况包含进去,就要是z!=min.length()+1,也可以改成如下 :
public class Snippet {
public static String getMaxSubString(String s1, String s2) {
String max = "", min = "";
max = (s1.length() > s2.length()) ? s1 : s2;
min = (max == s1) ? s2 : s1;
for (int x = 0; x < min.length(); x++) {
//因为z=min.length时是有效的截取,所以要包含在内
for (int y = 0, z = min.length() - x; z<min.length()+ 1; y++, z++) {
//这种方法产生很多子串,比较消耗内存
String temp = min.substring(y, z);
System.out.println((temp));
if (max.contains(temp))
return temp;
}
}
return "";
}
public static void main(String[] args) {
String str1 = "adsfjavafdsfe";
String str2 = "dgjavaef";
System.out.println(str2.substring(0,3)); //结果工dgj不包含下标为3的元素a
System.out.println(str2.length());
System.out.println(getMaxSubString(str1, str2));
}
}
|