//思路:先查找第一个,如果不匹配直接结束;如果匹配,就依次判断后面的是否都匹配,不匹配直接结束
public class StringContains {
// container是否包含child
public static boolean str1ContainsStr2(String container, String child) {
if (container.length() < child.length()) {
return false;
}
int maxLength = container.length();
char first = child.charAt(0);
int i = -1;
while (++i < maxLength) {
// 先找第一个元素是否能找到
if (first == container.charAt(i)) {
// 找到第一个元素再去匹配后面的元素
if (matchStr(container.substring(i), child)) {
return true;
}
}
}
return false;
}
// max是否包含min
public static boolean matchStr(String max, String min) {
if (max.length() < min.length()) {
return false;
}
int i = -1;
int minLength = min.length();
while (++i < minLength) {
// 对应位置的元素是否都相等
if (min.charAt(i) != max.charAt(i)) {
return false;
}
}
return true;
}
public static void main(String[] args) {
String str1 = "abcdefghijklmn";
String str2 = "fghijklmn";
String str3 = "fgj";
String str4 = "agh";
System.out.println(str1ContainsStr2(str1, str2));
}
}
public class StringContains {
// container是否包含child
public static boolean str1ContainsStr2(String container, String child) {
if (container.length() < child.length()) {
return false;
}
int maxLength = container.length();
char first = child.charAt(0);
int i = -1;
while (++i < maxLength) {
// 先找第一个元素是否能找到
if (first == container.charAt(i)) {
// 找到第一个元素再去匹配后面的元素
if (matchStr(container.substring(i), child)) {
return true;
}
}
}
return false;
}
// max是否包含min
public static boolean matchStr(String max, String min) {
if (max.length() < min.length()) {
return false;
}
int i = -1;
int minLength = min.length();
while (++i < minLength) {
// 对应位置的元素是否都相等
if (min.charAt(i) != max.charAt(i)) {
return false;
}
}
return true;
}
public static void main(String[] args) {
String str1 = "abcdefghijklmn";
String str2 = "fghijklmn";
String str3 = "fgj";
String str4 = "agh";
System.out.println(str1ContainsStr2(str1, str2));
}
}