Java程序检查给定字符串中是否存在子字符串
假设您有两个字符串,您的任务是编写一个 Java 程序来检查第二个字符串是否为第一个字符串的子字符串。Java 中的字符串是字符的不可变序列,子字符串是其一小部分。
示例场景:−
Input 1: str = "The sunset is beautiful"; Input 2: sub_str = "sunset"; Output: res = found!!
使用迭代
在这种方法中,思路是使用嵌套 for 循环和 if 块。外部 for 循环将迭代主字符串的字符。对于每个起始位置 i,内部 for 循环将使用 if 块将子字符串的每个字符与主字符串中相应的字符进行比较。
如果任何字符不匹配,内部循环将中断,外部循环将移动到下一个起始位置。如果内部循环在不中断的情况下完成,则表示在当前起始位置 i 找到子字符串。然后代码打印索引。
示例
一个 Java 程序演示了如何检查给定字符串中是否存在子字符串,如下所示:
public class Example { public static void main(String args[]) { String str = "Apples are red"; String substr = "are"; int n1 = str.length(); int n2 = substr.length(); System.out.println("String: " + str); System.out.println("Substring: " + substr); for (int i = 0; i <= n1 - n2; i++) { int j; for (j = 0; j < n2; j++) { if (str.charAt(i + j) != substr.charAt(j)) break; } if (j == n2) { System.out.println("The substring is present in the string at index " + i); return; } } System.out.println("The substring is not present in the string"); } }
以上代码将显示以下输出:
String: Apples are red Substring: are The substring is present in the string at index 7
使用 contains() 方法
String 类 java.lang 包提供了 contains() 方法,该方法用于检查特定字符序列是否存在于字符串中。
示例
让我们看看实际实现。
public class Example { public static void main(String[] args) { String str = "Apples are red"; String substr = "red"; // to check substring boolean checkSubStr = str.contains(substr); if (checkSubStr) { System.out.println(substr + " is present in the string"); } else { System.out.println(substr + " is not present in the string"); } } }
运行后,此代码将给出以下结果:
red is present in the string
使用 indexOf() 方法
这是另一种找出字符串是否包含某个子字符串的方法。在这里,我们使用 String 类的 indexOf() 方法。它返回指定子字符串第一次出现的索引。如果子字符串不存在,则返回 -1。
示例
在这个 Java 程序中,我们使用 indexOf() 方法来检查给定字符串中是否存在子字符串。
public class Example { public static void main(String[] args) { String str = "Apples are red"; String substr = "ples"; // to check substring int checkSubStr = str.indexOf(substr); if (checkSubStr != -1) { System.out.println(substr + " is present in the string at index: " + checkSubStr); } else { System.out.println(substr + " is not present in the string"); } } }
以上代码的输出如下:
ples is present in the string at index: 2
广告