学习目标:
目标:熟练运用 Java所学知识
题目内容:
本文内容: 使用Java实现:实现方法 contains, 能够判定字符串中是否包含子串
解题思路:
实现该问题同样可以使用我上以前博客的思路
https://blog.csdn.net/zhangxxin/article/details/112975089
所以也有两种方法,只是将返回类型做了改变,具体思路我也在上一篇详细做了解释
实现代码:
- 方法一:
public class Practice_03 {
public static void main(String[] args) {
//实现方法 indexOf, 能够找出字符串子串存在的位置
String str="Hello world";
System.out.println( indexOf(str,"wor"));
}
public static boolean indexOf(String str, String s) {
for (int i = 0; i < str.length(); i++) {
int count = 0;
if ((String.valueOf(s.charAt(0))).equals(String.valueOf(str.charAt(i)))) {
//找到s中第一个元素在str中出现的位置
String str1=new String(str.substring(i,(i+s.length())));
if(str1.equals(s)){
return true;
}
}
}
return false;
}
}
//运行结果
true
- 方法二:
public class Practice_03 {
public static void main(String[] args) {
//实现方法 contains, 能够判定字符串中是否包含子串
String str = "Hello world";
System.out.println(indexOf(str, "wor"));
}
public static boolean indexOf(String str, String s) {
for (int i = 0; i < str.length(); i++) {
int count = 0;
if ((String.valueOf(s.charAt(0))).equals(String.valueOf(str.charAt(i)))) {
//找到s中第一个元素在str中出现的位置
int m = i;
for (int j = 0; j < s.length(); j++) {
if ((String.valueOf(s.charAt(j))).equals(String.valueOf(str.charAt(m++)))) {
//判断i位置开始后,长度为s的每一个字符是否与s中的每一个字符相等
count++;
}
if (count == s.length()) {
return true;
}
}
}
}
return false;
}
}
//运行结果
true