本帖最后由 王明明 于 2012-6-16 22:01 编辑
- class MaxSubstring // 在Java中 有一个习惯 就是顾头不顾尾
- {
- public String maxString(String s1, String s2)
- {
- for (int x=0; x<s2.length();x++ )
- {
- for (int y=0,z=s2.length()-x ;z<=s2.length() ; z++,y++)
- {
- String temp=s2.substring(y,z);
- System.out.println(temp);
- System.out.println(x);
- System.out.println(y);
- System.out.println(z);//为了看程序是怎么取值的 我输出了他们
- if (s1.contains(temp))
- {
- return temp;
- }
- }
- }
- return "";
- }
- }
- class MaxSubstringTest
- {
- public static void main(String[] args)
- {
- MaxSubstring d= new MaxSubstring();
- String str1="abdefhellqqqqoj";
- String str2="cndhellqqqqo";
- System.out.println(d.maxString(str1,str2));
- }
- }
复制代码 就像上面说的我为了看他们的取值 我选择了输出他们
但是让我感到很奇怪的是
cndhellqqqqo
0
0
12
cndhellqqqq
1
0
11
ndhellqqqqo
1
1
12
cndhellqqq
2
0
10
ndhellqqqq
2
1
11
dhellqqqqo
2
2
12
cndhellqq
3
0
9
ndhellqqq
3
1
10
dhellqqqq
3
2
11
hellqqqqo
3
3
12
hellqqqqo
这个他们的输出结果 我想不明白 为什么是这么比较的...
我本以为会是
x=0
y=0 y=1 y=2 y=3 y=4...
然后
x=1
y=0 y=1 y=2 y=3 y=4...
然后
.
.
.
我们以为会是这样的循环 然后找到相同的
想请高手帮忙解析一下...
|
|