Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写java程序来检查一个字符串是否是另一个字符串的子字符串,而不使用indexOf()、contains()等? for(int i=0;i_Java_String - Fatal编程技术网

如何编写java程序来检查一个字符串是否是另一个字符串的子字符串,而不使用indexOf()、contains()等? for(int i=0;i

如何编写java程序来检查一个字符串是否是另一个字符串的子字符串,而不使用indexOf()、contains()等? for(int i=0;i,java,string,Java,String,我知道这甚至不正确,但我不知道如何开始 如何编写java程序来检查字符串是否是 另一个不使用indexOf()的字符串,contains()等 有许多方法(也基于您使用的函数/方法),例如,以下解决方案使用String#length和String#equalsIgnoreCase以及String#substring(您已经在代码中使用的方法)。逻辑检查主题子字符串是否等于(忽略大小写)从str中的索引开始的相同长度的子字符串 for (int i = 0; i < str1.length(

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

如何编写java程序来检查字符串是否是 另一个不使用indexOf()的字符串,contains()等

有许多方法(也基于您使用的函数/方法),例如,以下解决方案使用
String#length
String#equalsIgnoreCase
以及
String#substring
(您已经在代码中使用的方法)。逻辑检查主题
子字符串
是否等于(忽略大小写)从
str
中的索引开始的相同长度的子字符串

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");
     }
   }
}

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

true
false
String a=“你好,世界!”;
字符串b=“世界”;
布尔包含;
包含=错误;
对于(int i=0;i
…不使用indexOf()、contains()等?
-您需要准确地告诉我们您不想使用哪些方法,或者您想使用哪些方法来实现它。好吧,尝试一下逻辑,给定一个字符串str1,您可以逐个检查另一个字符串中与str1中的第一个字符相匹配的字符,然后从匹配的字符中获取str1的长度和索引,获取子字符串并检查其是否等于str1?如果不允许使用所有这些方法,那么他们可能希望您逐个字符进行比较,因此您可能应该使用。或者他们希望您调用,然后在两个数组上逐个字符进行比较。
true
false
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");