将CharSequence与String.valueOf进行比较

时间:2014-03-23 20:31:00

标签: java

我有以下代码:

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");    
        }
    }
}

为什么我在这种情况下无法比较?因为两者都是字符串值?我如何比较这种情况下的值?

3 个答案:

答案 0 :(得分:1)

我只需要进行一次小搜索即可找到答案,因为它已经有数百次了。但对于那些不能使用搜索功能的顽固分子来说:

你不能使用“==”比较字符串,从不。 相反,您应该使用“.equals()”

来比较它们 在您的示例中

if(cs.toString().equals(String.valueOf(df.format(danswer))))

答案 1 :(得分:0)

使用相同的方法。     字符串a =" abc&#34 ;;     如果(a.equal(" ABC&#34))

在你的代码中使用它

答案 2 :(得分:0)

在这种情况下,您要比较2个字符串,但运算符“==”是比较布尔值和数字类型的运算符。当你想比较字符串时总是使用.equals()方法,因为字符串需要通过char和.equals()来比较char,为你做。 每个字符串都有.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");    
    }
}

} 这可以正常工作!