为什么我们需要在最后加双引号?

问题描述 投票:-3回答:4

因为我正在尝试创建一个计算器。为什么有必要在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;
            }
java android string double-quotes
4个回答
1
投票

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

editText.setText(5 + " apples");

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


1
投票

这是为了强制将整数值(firstnum + secondnum的结果)转换为字符串,这是setText()作为参数所需要的。还有setText()接受int(你正在使用浮动,所以事实并非如此)但是这个int将被用作字符串资源的ID而不是你想要的,因此需要转换为字符串。它也只是减少输入。它基本上相当于替换:

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

有:

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

0
投票

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


-1
投票

setText想要一个String。如果你想从一个int获得一个String,你可以使用String.valueOf(i)i+""

© www.soinside.com 2019 - 2024. All rights reserved.