Compare CharSequence with String.valueOf



我有以下代码:

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        CharSequence cs = "5.00";
        double danswer = 5.0000;
        DecimalFormat df = new DecimalFormat("#.00");
        if(cs.toString() == String.valueOf(df.format(danswer)))
        {
            System.out.println("person");   
        }
        else
        {
            System.out.println("False");    
        }
    }
}

为什么在这种情况下我不能比较?因为两者都是字符串值?在这种情况下,我如何比较这些值?

我只需要一个小搜索找到这个问题的答案,因为它已经给出了数百次。但是对于那些不会使用搜索功能的死忠粉:

你不能使用"=="来比较字符串,永远不能。相反,您应该使用".equals() "来比较它们。"

在你的例子中:if(cs.toString().equals(String.valueOf(df.format(danswer))))

使用equal方法。字符串a ="abc";如果(a.equal (abc))

在你的代码中使用

在这种情况下,您想比较两个字符串,但运算符"=="是比较布尔和数字类型的运算符。当你想比较字符串时,总是使用.equals()方法,因为字符串需要逐个字符进行比较,而.equals()会为你做这件事。每个字符串都有。equals()函数

class Ideone
        {
public static void main (String[] args) throws java.lang.Exception
{
    CharSequence cs = "5.00";
    double danswer = 5.0000;
    DecimalFormat df = new DecimalFormat("#.00");
    if(cs.toString().equals(String.valueOf(df.format(danswer))))
    {
        System.out.println("person");   
    }
    else
    {
        System.out.println("False");    
    }
}

}这可以很好地工作!

最新更新