我有以下代码:
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");
}
}
}
为什么我在这种情况下无法比较?因为两者都是字符串值?我如何比较这种情况下的值?
答案 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");
}
}
} 这可以正常工作!