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() 方法

Stringjava.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

更新于: 2024年9月25日

1K+ 浏览量

开启你的 职业生涯

完成课程获得认证

开始学习
广告