Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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字符串包含_Java_String - Fatal编程技术网

Java字符串包含

Java字符串包含,java,string,Java,String,我知道还有其他类似的问题,我确实看了一下,但对我来说不起作用 String one= "ROLEAWARDS ROLEMOVIES ROLENOMINATIONS"; String two = "ROLENOMINATIONS ROLEAWARDS ROLEMOVIES"; if(one.contains(two) || two.contains(one)) { System.out.println("Contains"); } else System.out.println(

我知道还有其他类似的问题,我确实看了一下,但对我来说不起作用

String one= "ROLEAWARDS ROLEMOVIES ROLENOMINATIONS"; 
String two = "ROLENOMINATIONS ROLEAWARDS ROLEMOVIES";
if(one.contains(two) || two.contains(one))
{
    System.out.println("Contains");
}
else
    System.out.println("Doesn't Contain");

这是我的代码,即使一个包含两个,两个也包含一个,它总是打印字符串一不包含字符串二

String one= "ROLEAWARDS ROLEMOVIES ROLENOMINATIONS"; 
String two = "ROLENOMINATIONS ROLEAWARDS ROLEMOVIES";
String oneArray[] = one.split("\\s+");
String twoArray[] = one.split("\\s+");
Arrays.sort(oneArray);
Arrays.sort(twoArray);
if(Arrays.equals(oneArray, twoArray))
{
    System.out.println("Contains");
}
else
    System.out.println("Doesn't Contain");
}

这是因为您正在比较整个字符串,显然您似乎认为它会检查空间中拆分的每个子字符串,而实际上它不是这样工作的(这也是不直观的)

所以

String one=“RoleWards ROLEMOVIES ROLENOMINATIONS”;
字符串二=“ROLENOMINATIONS RoleWards ROLEMOVIES”;
字符串[]oneSplit=1.split(“”);
字符串[]twoSplit=2.split(“”);
布尔包含=假;
for(int i=0;i
包含()当且仅当此字符串包含指定的字符值序列时,方法返回true。在代码中,每个字符串中的字符序列不同于其他字符串,因此在代码中返回false并打印字符串1不包含字符串2。这里的关键是每个字符串中的字符序列。

.contains()函数未检查它们是否有常用词。
检查您的一个字符串是否是另一个字符串的子集是非常困难的。
在您的情况下,两个字符串不是彼此的子集

    String one= "ROLEAWARDS ROLEMOVIES ROLENOMINATIONS"; 
    String two= "ROLEMOVIES";
    if(one.contains(two) || two.contains(one))
    {
        System.out.println("Contains");
    }
    else
        System.out.println("Doesn't Contain");
现在它将打印“包含”。


请详细阅读.contain()

这两个字符串不相同

String one= "ROLEAWARDS ROLEMOVIES ROLENOMINATIONS"; 
String two = "ROLENOMINATIONS ROLEAWARDS ROLEMOVIES";
 if(one.contains(two) || two.contains(one))
        one.contains(two) will be  true if two is a subset of one
        two.contains(one)   will be  true if one is a subset of two

因此,结果是正确的。因为它们都不是另一个的子集。

在您的示例中,没有字符串包含另一个。contains表示“是的子字符串”,一个不包含两个,而两个不包含一个。为什么您认为一个包含两个,反之亦然?在找到解决方案的方向上,我建议您使用StringTokenizer将两个字符串复制到两个不同的列表中,然后检查其他列表中包含的每个字符串,并相应地确定您的输出。这两个字符串不相同,那么为什么它会我会证明它是一样的。
String one= "ROLEAWARDS ROLEMOVIES ROLENOMINATIONS"; 
String two = "ROLENOMINATIONS ROLEAWARDS ROLEMOVIES";
 if(one.contains(two) || two.contains(one))
        one.contains(two) will be  true if two is a subset of one
        two.contains(one)   will be  true if one is a subset of two