Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具体数字和字符串为什么我会得到这个结果_Java - Fatal编程技术网

Java 具体数字和字符串为什么我会得到这个结果

Java 具体数字和字符串为什么我会得到这个结果,java,Java,我试着用字符串表示一个数字,我是这样做的: int minute=7; String min = minute+""; if(min.length()==1){ min = 0+minute+""; } 结果我得了7分。为什么?试试: if(min.length() == 1){ min = "0" + minute; } 要用两位数字书写数字,您还可以

我试着用字符串表示一个数字,我是这样做的:

            int minute=7;
            String min = minute+"";

            if(min.length()==1){

                min = 0+minute+"";
            }
结果我得了7分。为什么?

试试:

if(min.length() == 1){
    min = "0" + minute;
}
要用两位数字书写数字,您还可以执行以下操作:

int minute = 7;
String s = String.format("%02d", minute);  // 07

0和minute都是整数,它们首先作为整数加法计算,而不是字符串串联

改为:

min = 0 + "" + minute+"";

首先将整数minute和0相加,然后将它们转换为字符串。

这是:

0+minute+""

那是

7+""
"07"
因为
0+7==7

另一方面:

"0"+minute

那是

7+""
"07"

这取决于操作顺序。0+7在7+“”之前执行,因此它对两个整数进行加法,而不是将它们串联起来。更改参数的顺序。

操作从左到右执行:因此,0(一个int)+min(另一个int)给出一个int,7。 然后,7(一个int)+“”(一个字符串)给出一个字符串

溶液可为“0”+分钟


否则,我建议使用java.text.NumberFormat类来定义数字格式

0+min
更改为
0+min
。啊,好的,我不理解,编译器尝试添加0+7并将其转换为字符串,这就是我得到7的原因。0+“”+分钟也可以。非常感谢。