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