我有以下代码:
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");
}
}
}这可以很好地工作!