布尔值没有按预期在String.Contains()中返回?

时间:2016-11-04 08:42:16

标签: java string compare contain

我从我的项目中得到了这个样本,我需要知道结果是什么原因。

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

2 个答案:

答案 0 :(得分:2)

代码始终按照您的要求执行操作:

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

但是

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

http s 与http!

所以真正的答案是:特别是当你是初学者时,你的代码发现“某些Java bug”的可能性相对较小(实际上非​​常接近于零!)

您的假设出错的可能性要大得多。您要么不完全理解要调用的方法,要么输入数据中存在微妙的缺陷。

最后:还可以处理命名包含在这里不是一个很好的名字;你最好把它称为 expectedUrl ,或类似的东西!

答案 1 :(得分:1)

在您的代码网址" https://classicpartyrentals.com/products/24681-gothic-silver-coffee-cup"包含https

但您的比较字符串" http://classicpartyrentals.com/"包含http所以它不匹配并返回false