·实现方法

1.创建一个项目

2.创建一个包javabasic13

3.创建public class JavaBasic13,并添加main()方法

package JavaBasic13;

public class JavaBasic13 {

public static void main(String[] args) {

String searchMe = "在 me 里查找字串";

String substring = "字串";

boolean foundIt = false;

int max = searchMe.length() - substring.length();

test:

for (int i = 0; i <= max; i++) {

int n = substring.length();

int j = i;

int k = 0;

while (n-- != 0) {

if (searchMe.charAt(j++)

!= substring.charAt(k++)) {

continue test;

}

}

foundIt = true;

break test;

}

System.out.println(foundIt ? "找到了" :

"没有找到");

}

}

·编码分析

定义2个字符串变量searchMe = "在me里查找字串"，substring = "字串"

定义一个boolean型变量foundIt = false（表示 searchMe字符串是否包含substring字符串）

定义整型变量max，令其等于 searchMe 字符串和substring字符串长度之差

下面我们构造一个二层循环来判断 searchMe 字符串是否包含substring字符串

首先构造外层for循环for (int i = 0; i <= max; i++)，并为其定义标签test:

定义3个整型变量n、j、k，其中n = substring.length()（表示substring字符串的长度），j = i（表示searchMe字符串中字符的位置），k = 0（表示substring字符串中字符的位置）

构造while循环while (n-- != 0)，比较searchMe字符串从j位置开始的字符串中是否包含substring字符串，逐个字符进行比较。如果不相同（if (searchMe.charAt(j++)!= substring.charAt(k++))），则结束本次外层for循环，执行下一次循环，即continue test。

若while循环完毕而没有跳转，表明searchMe字符串中包含了substring字符串，则设置foundIt = true，并使用break结束外层for循环，即break test;

根据foundIt的值输出"找到了"或者"没有找到"