受上边两位的启发做出来的,不同的地方是使用的数组和索引
package cn.itcast_01;
/*
* 思路:
* A:将小串转换成char数组
* B:使用String构造方法构造子串(最大公约数)(可以使用长度参数来构造子字符串)
* C:在大串中查找子串的索引
* D:不存在,索引返回-1,存在返回真实索引
* 最大公约数:opfhapio
*/
public class FuxiDemo {
public static void main(String[] args) {
String maxStr = "dhfsdhifaospdifahfsdiopfhapiod";
String minStr = "sdhfopfhapioas";
method(maxStr, minStr);
}
private static void method(String s1, String s2) {
String maxS;
String minS;
if (s1.length() > s2.length()) {
maxS = s1;
minS = s2;
} else {
maxS = s2;
minS = s1;
}
char[] chs = minS.toCharArray();
other:
// 第一个for循环用于控制截取的子字符串长度
for (int x = chs.length - 1; x > 0; x--) {
// 用于控制截取的字符串
for (int y = 0; y + x < chs.length; y++) {
String temp = new String(chs, y, x);
// 子串与大串比较,返回索引,判断索引是否为-1,不为-1则存在
int index = maxS.indexOf(temp);
if (index != -1) {
System.out.println(temp);
break other;
}
}
}
}
} |