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+“”+分钟也可以。非常感谢。