用于检查给定字符串中是否存在子字符串的Java程序

子字符串是字符串的一部分,可以检查给定字符串中是否存在特定的子字符串。一个例子如下:

String = The sunset is beautiful
Substring = sunset

该子字符串存在于字符串中。

演示此的程序如下所示-

示例

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("子字符串出现在字符串的索引位置 " + i);
            return;
         }
      }
      System.out.println("字符串中不存在子字符串");
   }
}

输出结果

String: Apples are red
Substring: are
子字符串出现在字符串的索引位置 7

现在让我们了解上面的程序。

首先,打印字符串和子字符串。证明这一点的代码片段如下所示-

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循环查找子字符串是否为给定字符串的一部分。如果是,则将其打印出来,并且还指定子字符串在字符串中开始的索引。然后main()函数返回。证明这一点的代码片段如下所示-

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("子字符串出现在字符串的索引处" + i);
         return;
      }
   }
}

如果字符串中不存在子字符串,则在for循环结束后将其打印出来。证明这一点的代码片段如下所示-

System.out.println("字符串中不存在子字符串");