String.Contains() 中的布尔值未按预期返回?

Boolean not returning as expected in String.Contains()?

我的项目中有这个示例,我需要知道为什么结果是这样。

public class Main 
{   
    public static void main(String[] args)
    {
        //url: https://classicpartyrentals.com/products/24681-gothic-silver-coffee-cup, websiteList: http://classicpartyrentals.com/, URL Contains Returns bool: false
        String url = "https://classicpartyrentals.com/products/24681-gothic-silver-coffee-cup";
        String contains = "http://classicpartyrentals.com/";
        System.out.println("Returns bool: " + url.contains(contains));
    }

}

输出:

Returns bool: false

代码总是按您的要求执行:

 String url = "https://classicpartyrentals.com/products/24681-gothic-

但是

 String contains = "http://classicpartyrentals.com/";

https 与 http!

所以真实的答案是:特别是当你是初学者时,你的代码被揭开的机会"some Java bug"相对较小(在现实中非常接近于零!)

您的 假设错误的可能性更高。您要么没有完全理解您正在调用的方法,要么您的输入数据中存在 微妙 缺陷。

最后:还要处理您的命名contains 在这里不是一个很好的名字;您最好将其命名为 expectedUrl,或类似的名称!

在您的代码中 Url“https://classicpartyrentals.com/products/24681-gothic-silver-coffee-cup”包含 https

但是您的比较字符串“http://classicpartyrentals.com/”包含 http,因此它不匹配并且 return false