首页 > 解决方案 > 如何在不使用 indexOf()、contains() 等的情况下编写一个 java 程序来检查一个字符串是否是另一个字符串的子字符串?

问题描述

for (int i = 0; i < str1.length(); i++) 
{
   String c = str1.substring(i, i + 1);
   for (int j = 0; j < str2.length(); j++) 
   {
     String d = str1.substring(j, j + 1);
     if (d != c) 
     {
        System.out.println("no");   
     } 
     else 
     {
        System.out.println("yes");
     }
   }
}

我知道这甚至不正确,但我不知道如何开始。

标签: javastring

解决方案


你的意思是像你在经典的入门编程练习中所做的那样吗?例如像这样的东西?

String a = "Hello, world!";
String b = "world";

boolean contained;

contained = false;
for (int i = 0; i < a.length() - b.length() + 1 && !contained; i++) {
    contained = true;
    for (int j = 0; j < b.length() && contained; j++)
        if (a.charAt(i + j) != b.charAt(j))
            contained = false;
}

System.out.println(contained ? "b is a substring of a" : "b is not a substring of a");

推荐阅读