为什么我们需要在末尾加双引号?

时间:2019-04-30 13:56:32

标签: java android string double-quotes

在我尝试创建计算器时。为什么必须在firstnum和secondnum之后添加双空引号。是转换器还是其他任何东西。因为我看到的只是两个引号之间的空白。

eqaul.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(ADDITION || SUBTRACTION || MULTIPLICATION || DIVIDE)
                secondnum = Float.parseFloat(editText.getText() + "" );
            if(ADDITION){
                editText.setText(firstnum + secondnum + "");
                ADDITION = false;
            }

4 个答案:

答案 0 :(得分:1)

firstnum和secondnum都是Float类型,所以似乎将它们相加将导致Float,setText()方法采用String而不是Float,当添加+“” java时,会自动将2个Floats的相加转换为一个字符串,请考虑是否有:

editText.setText(5 + " apples");

然后Java会认为您想要一个字符串“ 5 apples”,这就是为什么它将字符串之前的int转换为字符串表示形式,然后将其附加到“ apples”的原因。

答案 1 :(得分:1)

这是为了强制将整数值(firstnum + secondnum的结果)转换为字符串,这是setText()要求的参数。还有setText()接受int(您正在使用浮点数,所以无论如何都不是),但是int会被用作不是您想要的字符串资源的ID,因此需要转换为字符串。它也只是减少打字。基本上等同于替换:

editText.setText(firstnum + secondnum + "");

具有:

editText.setText(String.valueOf(firstnum + secondnum));

答案 2 :(得分:0)

+是重载运算符 当它在两个数字之间时,会将它们相加 但是添加“”将使它成为字符串

答案 3 :(得分:-1)

setText需要一个字符串。 如果要从int获取字符串,则可以使用String.valueOf(i)i+""